home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / PWD16.ZIP / PASSWORD.PPS < prev    next >
Text File  |  1994-01-02  |  23KB  |  451 lines

  1. ;****************************************************************************
  2. ;  PASSWORD.PPE version 1.6 released on 01/02/94 by James R. Erck
  3. ;
  4. ;  PASSWORD.PPE is a program designed to allow a caller to reset their own
  5. ;  password if they can match the information contained in the verification
  6. ;  PSA.  All comments or suggestions should be directed to me (see the
  7. ;  PASSWORD.DOC file).
  8. ;
  9. ;  NOTE:  Please DO NOT DISTRIBUTE any modified source code without prior
  10. ;  permission or without meeting the requirements set forth in PASSWORD.DOC
  11. ;****************************************************************************
  12.  
  13.  
  14. ;****************************************************************************
  15. ; the variables
  16. ;****************************************************************************
  17. string ver_answer, voice_phone, password, password1, password2, maiden_name
  18. string user_addr0, user_addr1, user_addr2, user_addr3, user_addr4, user_addr5
  19. string logopt_1, logopt_2, logopt_3, logopt_4, logopt_5, logopt_6, logopt_7
  20. string logopt_8, logopt_9, logopt_10, logopt_11, msgopt_1, msgopt_2, msgopt_3
  21. string msgopt_4, msgopt_5, confopt_1, confopt_2, confopt_3, confopt_4
  22. string confopt_5, displayopt1, displayopt2, displayopt3, displayopt4
  23. string displayopt5, displayopt6, displayopt7, displayopt8, displayopt9
  24. string hv_phone, bd_phone, pwd_min, pwd_max, pcbnode, SYSOP, maiden_name2
  25. string ver_text, logopt_12
  26. integer min, max, conf1, conf2, conf3, conf4, conf5, maxseclevel
  27. boolean changed
  28. pcbnode = pcbnode()
  29.  
  30.  
  31. ;****************************************************************************
  32. ; see if Sysop has the correct PSA's installed (if not, end)
  33. ;****************************************************************************
  34. getuser
  35. if ((PSA(2) = 1) & (PSA(3) = 1)) goto check_for_cfg_file
  36. end
  37.  
  38.  
  39. ;****************************************************************************
  40. ; see if configuration file exists (if not, end) and set caller log options
  41. ;****************************************************************************
  42. :check_for_cfg_file
  43. if (!(exist(ppepath()+"password.cfg"))) end
  44. logopt_1 = left(readline(ppepath()+"password.cfg",1),1)
  45. logopt_2 = left(readline(ppepath()+"password.cfg",2),1)
  46. logopt_3 = left(readline(ppepath()+"password.cfg",3),1)
  47. logopt_4 = left(readline(ppepath()+"password.cfg",4),1)
  48. logopt_5 = left(readline(ppepath()+"password.cfg",5),1)
  49. logopt_6 = left(readline(ppepath()+"password.cfg",6),1)
  50. logopt_7 = left(readline(ppepath()+"password.cfg",7),1)
  51. logopt_8 = left(readline(ppepath()+"password.cfg",8),1)
  52. logopt_9 = left(readline(ppepath()+"password.cfg",9),1)
  53. logopt_10 = left(readline(ppepath()+"password.cfg",10),1)
  54. logopt_11 = left(readline(ppepath()+"password.cfg",11),1)
  55.  
  56.  
  57. ;****************************************************************************
  58. ; read pcboard.dat to find minimum password length, set max length
  59. ;****************************************************************************
  60. pwd_min = readline(pcbdat(), 265)
  61. pwd_max = 12
  62. min = pwd_min
  63. max = pwd_max
  64.  
  65.  
  66. ;****************************************************************************
  67. ; set message options
  68. ;****************************************************************************
  69. msgopt_1 = left(readline(ppepath()+"password.cfg",12),1)
  70. msgopt_2 = left(readline(ppepath()+"password.cfg",14),1)
  71. msgopt_3 = left(readline(ppepath()+"password.cfg",16),1)
  72. msgopt_4 = left(readline(ppepath()+"password.cfg",18),1)
  73. SYSOP = (readline(ppepath()+"password.cfg",20))
  74.  
  75.  
  76. ;****************************************************************************
  77. ; set conference options
  78. ;****************************************************************************
  79. confopt_1 = left(readline(ppepath()+"password.cfg",13),5)
  80. confopt_2 = left(readline(ppepath()+"password.cfg",15),5)
  81. confopt_3 = left(readline(ppepath()+"password.cfg",17),5)
  82. confopt_4 = left(readline(ppepath()+"password.cfg",19),5)
  83. conf1 = confopt_1
  84. conf2 = confopt_2
  85. conf3 = confopt_3
  86. conf4 = confopt_4
  87.  
  88. ;****************************************************************************
  89. ; set display options
  90. ;****************************************************************************
  91. displayopt1 = left(readline(ppepath()+"password.cfg",21),1)
  92. displayopt2 = left(readline(ppepath()+"password.cfg",22),1)
  93. displayopt3 = left(readline(ppepath()+"password.cfg",23),1)
  94. displayopt4 = left(readline(ppepath()+"password.cfg",24),1)
  95. displayopt5 = left(readline(ppepath()+"password.cfg",25),1)
  96. displayopt6 = left(readline(ppepath()+"password.cfg",26),1)
  97. displayopt7 = left(readline(ppepath()+"password.cfg",27),1)
  98. displayopt8 = left(readline(ppepath()+"password.cfg",28),1)
  99. displayopt9 = left(readline(ppepath()+"password.cfg",29),1)
  100.  
  101. ;****************************************************************************
  102. ; get definition of text contained in Verification PSA
  103. ;****************************************************************************
  104. ver_text = (readline(ppepath()+"password.cfg",30))
  105.  
  106. ;****************************************************************************
  107. ; get the callers information from their record and the Address PSA
  108. ;****************************************************************************
  109. user_addr0 = (u_addr(0))
  110. user_addr1 = (u_addr(1))
  111. user_addr2 = (u_addr(2))
  112. user_addr3 = (u_addr(3))
  113. user_addr4 = (u_addr(4))
  114. user_addr5 = (u_addr(5))
  115. hv_phone = u_hvphone
  116. bd_phone = u_bdphone
  117.  
  118.  
  119. if (logopt_1 = Yeschar()) log "Password.PPE Executed",0
  120. if (msgopt_1 = Yeschar()) message conf1,SYSOP,"PASSWORD PPE EXECUTED",u_name()+ " ("+pcbnode+")","R",0,false,false,ppepath()+"pwd_ppe.msg"
  121. ;****************************************************************************
  122. ; get maximum security level for program to run
  123. ;****************************************************************************
  124. maxseclevel = left(readline(ppepath()+"password.cfg",31),3)
  125. logopt_12 = left(readline(ppepath()+"password.cfg",32),1)
  126. msgopt_5 = left(readline(ppepath()+"password.cfg",33),1)
  127. confopt_5 = left(readline(ppepath()+"password.cfg",34),5)
  128. conf5 = confopt_5
  129.  
  130. if (cursec() <= maxseclevel) goto sec_okay
  131. if (logopt_12 = Yeschar()) log "Invalid Security Level Executed PASSWORD.PPE",0
  132. if (msgopt_5 = Yeschar()) message conf5,SYSOP,"INVALID SECURITY LEVEL",u_name()+ " ("+pcbnode+")","R",0,false,false,ppepath()+"pwd_sec.msg"
  133. println
  134. println "@X0C@FIRST@, did you forget your password?"
  135. end
  136.  
  137.  
  138. :sec_okay
  139. ;****************************************************************************
  140. ; check to see if caller has entered in their verification information
  141. ;****************************************************************************
  142. if (u_ver = "") goto no_verif_info
  143. goto verif_info_exists
  144.  
  145.  
  146. ;****************************************************************************
  147. ; start of program if caller didn't enter in their verification info
  148. ;****************************************************************************
  149. :no_verif_info
  150. if (logopt_2 = Yeschar()) log "Caller Never Entered Their Verification Info",0
  151. cls
  152. println
  153. println "@CLS@@X07"
  154. println "@X0F    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  155. println "@X0F    @X7F│    @X71Your user record does @X74NOT @X71contain the verification information    @X70│"
  156. println "@X0F    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  157. println
  158. println "@X03"
  159. println "  The following is the @X0FVerification Information @X03for this system:"
  160. println
  161. println "  ====> @X0F",ver_text
  162. println "@X03"
  163. println "  During a previous logon you were asked to enter the @X0FVerification Information@X03."
  164. println "  If this information was in your user record, and you could have matched this"
  165. println "  information, you would now be able to reset your own password.  Because it's"
  166. println "  missing you'll have to have your password reset by the Sysop.  Please answer"
  167. println "  the following questions which will be formatted into a message to the Sysop."
  168. println
  169. println
  170. inputstr "What is your voice phone number", voice_phone, @X0E, 14, "1234567890 -()", lfafter+fieldlen+guide
  171. :loop_inc_length1
  172. println
  173. password = ""
  174. inputstr "What would you like your new password to be", Password, @X0E, 12, mask_pwd(), echodots+lfafter+fieldlen+guide+upcase
  175.    if ((len(password) => min)) goto length_okay1
  176. println "@CLS@@X07"
  177. println "@X04    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  178. println "@X04    @X7F│                @X71The password you entered was invalid.                 @X70│"
  179. println "@X04    @X7F│     @X71It must be between @X74"+pwd_min+" @X71and @X74"+pwd_max+" @X71characters using @X74A@X71-@X74Z @X71and/or @X740@X71-@X749@X71!     @X70│"
  180. println "@X04    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  181. goto loop_inc_length1
  182. :length_okay1
  183. println
  184. println
  185. kbdstuff "Y"+chr(13)
  186. if ((u_fsep = 1) & (u_fse = 0)) kbdstuff "N"+chr(13)
  187. if ((u_fsep = 1) & (u_fse = 1)) kbdstuff "Y"+chr(13)
  188. kbdstuff "Voice Phone Number is: "+voice_phone+chr(13)
  189. kbdstuff "Reset New Password to: "+password+chr(13)
  190. kbdstuff "Callers record is missing the verification information!"+chr(13)
  191. kbdstuff chr(32)+chr(13)
  192. kbdstuff "I forgot my password! Could you please voice verify me?"+chr(13)
  193. end
  194.  
  195.  
  196. ;****************************************************************************
  197. ; display the caller their address info to see if it belongs to them
  198. ;****************************************************************************
  199. :verif_info_exists
  200. :loop_begin_again
  201. cls
  202. println
  203. println "@CLS@@X07"
  204. println "@X0F @X7F┌──────────────────────────────────────────────────────────────────────────@X78┐@X07"
  205. println "@X0F @X7F│                        @X74USER ACCOUNT INFORMATION@POS:77@@X78│"
  206. println "@X0F @X7F└@X78──────────────────────────────────────────────────────────────────────────┘@X07"
  207. println
  208. println "@X0F @X7F┌──────────────────────────────────────────────────────────────────────────@X78┐@X07"
  209. println "@X0F @X7F│ @X74--> @X70Your Name       : @X71@USER@@POS:77@@X70│"
  210. if (displayopt1 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Address Line 1  : @X71"+user_addr0+" @POS:77@@X70│"
  211. if (displayopt2 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Address Line 2  : @X71"+user_addr1+" @POS:77@@X70│"
  212. if (displayopt3 = Yeschar()) println "@X0F @X7F│ @X74--> @X70City/Town       : @X71"+user_addr2+" @POS:77@@X70│"
  213. if (displayopt4 = Yeschar()) println "@X0F @X7F│ @X74--> @X70State/Province  : @X71"+user_addr3+" @POS:77@@X70│"
  214. if (displayopt5 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Zip/Postal Code : @X71"+user_addr4+" @POS:77@@X70│"
  215. if (displayopt6 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Country         : @X71"+user_addr5+" @POS:77@@X70│"
  216. if (displayopt7 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Voice Phone #   : @X71"+hv_phone+"   @POS:77@@X70│"
  217. if (displayopt8 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Data Phone  #   : @X71"+bd_phone+"   @POS:77@@X70│"
  218. if (displayopt9 = Yeschar()) println "@X0F @X7F│ @X74--> @X70Last Time On    : @X71@LASTDATEON@ @X74at @X71@LASTTIMEON@@POS:77@@X70│"
  219. println "@X0F @X7F└@X70──────────────────────────────────────────────────────────────────────────┘@X0B"
  220. println
  221. println " Each of your password entries was invalid. Please answer the following to"
  222. println " assist us in verifying you and resetting your password."
  223. println
  224. ver_answer = ""
  225. inputyn "@X07@X0B Does the above information belong to you @X0E(@X0FY@X0B/@X0FN@X0E)", ver_answer,@X0B
  226. if (ver_answer = Yeschar()) goto yes_caller
  227. if (ver_answer = Nochar()) goto not_caller
  228. if (ver_answer = "") goto loop_begin_again
  229.  
  230.  
  231. ;****************************************************************************
  232. ; if address information didn't belong to the caller
  233. ;****************************************************************************
  234. :not_caller
  235. cls
  236. if (logopt_3 = Yeschar()) log "Caller Answered Account Info Did Not Belong to Them",0
  237. println
  238. println " Since this user information doesn't belong to you, perhaps another user"
  239. println " has logged onto this BBS with the same name. In that case you may want"
  240. println " to choose another variation of your name to use on this BBS (for example,"
  241. println " using  BOB  in place of  ROBERT  or by using a middle initial)."
  242. println
  243. println " You'll now be given a chance to leave a comment to the Sysop about your"
  244. println " problem before being automatically logged off the system."
  245. println
  246. wait
  247. end
  248.  
  249.  
  250. ;****************************************************************************
  251. ; if address information did belong to the caller
  252. ;****************************************************************************
  253. :yes_caller
  254. cls
  255. if (logopt_4 = Yeschar()) log "Caller Answered Account Info Did Belong to Them",0
  256. adjtime 5
  257. println
  258. println "@CLS@@X07"
  259. println "@X0B    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  260. println "@X0B    @X7F│                    @X74USER VERIFICATION INFORMATION                     @X70│@X0B"
  261. println "@X0B    @X7F└@X78──────────────────────────────────────────────────────────────────────@X70┘"
  262. println
  263. println "@X03"
  264. println "   The following is the @X0FVerification Information @X03for this system:"
  265. println
  266. println "   ====> @X0F", ver_text
  267. println "@X03"
  268. println "  If you're a registered user on this system and simply forgot your password"
  269. println "  you can automatically reset it.  During a previous logon you were prompted"
  270. println "  for the above @X0FVerification Information@X03.    If your answer to the following"
  271. println "  question matches the information contained in your record you will be able"
  272. println "  to enter in a @X0FNEW @X03logon password. If it doesn't match you will be prompted"
  273. println "  for information which will be formatted into a comment to the Sysop."
  274. println
  275. :maiden_again
  276. println
  277. inputstr "What is your Verification Information", maiden_name, @X0E, 12, mask_ascii(), lfafter+fieldlen+guide+upcase
  278. println
  279. if (u_ver = maiden_name) then
  280.    goto correct_maiden_name
  281.       endif
  282. inputstr "In case you mistyped please enter it in again", maiden_name2, @X0E, 12, mask_ascii(), lfafter+fieldlen+guide+upcase
  283. if (u_ver = maiden_name2) then
  284.    goto correct_maiden_name
  285.       else goto wrong_maiden_name
  286.          endif
  287.  
  288.  
  289. ;****************************************************************************
  290. ; caller did not match the verification information
  291. ;****************************************************************************
  292. :wrong_maiden_name
  293. cls
  294. if (logopt_5 = Yeschar()) log "Caller Entered Incorrect Verification Info",0
  295. if (msgopt_2 = Yeschar()) message conf2,SYSOP,"INVALID LOGON ATTEMPT",u_name()+ " ("+pcbnode+")","R",0,false,false,ppepath()+"ver_fail.msg"
  296. println
  297. println "@CLS@@X07"
  298. println "@X0F    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  299. println "@X0F    @X7F│       @X71The verification information you typed in was @X74INCORRECT!       @X70│"
  300. println "@X0F    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  301. println
  302. println
  303. println "@X0B    @X03The verification information you entered as your Mother's maiden name"
  304. println "@X0B    @X03does not match what was entered in the verification field of your user"
  305. println "@X0B    @X03record. You'll now be asked a few questions to assist us in verifying"
  306. println "@X0B    @X03you and resetting your password. These answers will be formatted into"
  307. println "@X0B    @X03a message to the Sysop to which you'll be able to add any additional"
  308. println "@X0B    @X03information you feel the Sysop will need to verify you."
  309. println
  310. println
  311. inputstr "What is your voice phone number", voice_phone, @X0E, 14, "1234567890 -()", lfafter+fieldlen+guide
  312. :loop_inc_length2
  313. println
  314. password = ""
  315. inputstr "What would you like your new password to be", password, @X0E, 12, mask_pwd(), echodots+lfafter+fieldlen+guide+upcase
  316.    if ((len(password) => min)) goto length_okay2
  317. println "@CLS@@X07"
  318. println "@X04    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  319. println "@X04    @X7F│                @X71The password you entered was invalid.                 @X70│"
  320. println "@X04    @X7F│     @X71It must be between @X74"+pwd_min+" @X71and @X74"+pwd_max+" @X71characters using @X74A@X71-@X74Z @X71and/or @X740@X71-@X749@X71!     @X70│"
  321. println "@X04    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  322. goto loop_inc_length2
  323. :length_okay2
  324. println
  325. println
  326. kbdstuff "Y"+chr(13)
  327. if ((u_fsep = 1) & (u_fse = 0)) kbdstuff "N"+chr(13)
  328. if ((u_fsep = 1) & (u_fse = 1)) kbdstuff "Y"+chr(13)
  329. kbdstuff "Voice Phone Number is: "+Voice_Phone+chr(13)
  330. kbdstuff "Reset New Password to: "+Password+chr(13)
  331. kbdstuff "Caller answered the verification information incorrectly!"+chr(13)
  332. kbdstuff chr(32)+chr(13)
  333. kbdstuff "I forgot my password! Could you please voice verify me?"+chr(13)
  334. end
  335.  
  336.  
  337. ;****************************************************************************
  338. ; caller did match the verification info
  339. ;****************************************************************************
  340. :correct_maiden_name
  341. cls
  342. if (logopt_6 = Yeschar()) log "Caller Entered Correct Verification Info",0
  343. println
  344. println
  345. println "@CLS@@X07"
  346. println "@X0F    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  347. println "@X07    @X7F│        @X71The verification information you typed in was @X74CORRECT!        @X70│"
  348. println "@X07    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  349. println
  350. println
  351. println "@X03    Now that we've verified you let's update your password. When prompted"
  352. println "    please enter in what you would like your @X02NEW @X03system password to be."
  353. println
  354. println "    @X0FNOTE: @X03Your password should be at least @X02"+pwd_min+" @X03and no more than @X02"+pwd_max+" @X03characters"
  355. println "    long (using the characters @X02A@X03-@X02Z @X03and/or @X020@X03-@X029@X03), cannot be a subset of your"
  356. println "    name and cannot match the first four characters of a previous password."
  357. println
  358. println
  359. :not_correct
  360. password1 = ""
  361. password2 = ""
  362. inputstr " Enter your NEW system password (dots will echo)", password1, @X0E, 12, mask_pwd(),upcase+echodots+lfafter
  363. println
  364. inputstr "   In case you mistyped please enter it in again", password2, @X0E, 12, mask_pwd(),upcase+echodots+lfafter
  365.  
  366.    if ((password1 = "") | (password2 = "")) goto blank_password
  367.    if ((len(password1) < (min)) | (len(password2)) < (min)) goto incorr_length
  368.  
  369.    if (password1 = password2) then
  370.       goto password_match
  371.          endif
  372.  
  373.  
  374. cls
  375. if (logopt_7 = Yeschar()) log "The Two Passwords Entered Did Not Match",0
  376. println
  377. println "@CLS@@X07"
  378. println "@X0F    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  379. println "@X0F    @X7F│    @X71The two passwords you entered did @X74NOT @X71match. Please try again.    @X70│"
  380. println "@X0F    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  381. println
  382.   goto not_correct
  383.  
  384. :blank_password
  385. cls
  386. if (logopt_8 = Yeschar()) log "Caller Entered a Blank Password",0
  387. println
  388. println "@CLS@@X07"
  389. println "@X07    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  390. println "@X07    @X7F│         @X71One of your attempts to enter a password was @X74BLANK@X71.          @X70│"
  391. println "@X07    @X7F│         @X71You @X74MUST @X71enter a @X74VALID @X71password in @X74BOTH @X71fields.              @X70│"
  392. println "@X07    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  393. println
  394.    goto not_correct
  395.  
  396. :incorr_length
  397. cls
  398. if (logopt_9 = Yeschar()) log "Passwords Were an Incorrect Length",0
  399. println
  400. println "@CLS@@X07"
  401. println "@X04    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  402. println "@X04    @X7F│                @X71Your password was @X74NOT @X71properly reset.                 @X70│"
  403. println "@X04    @X7F│     @X71It must be between @X74"+pwd_min+" @X71and @X7412 @X71characters using @X74A@X71-@X74Z @X71and/or @X740@X71-@X749@X71!     @X70│"
  404. println "@X04    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  405. println
  406.     goto not_correct
  407.  
  408. :not_changed
  409. cls
  410. if (logopt_10 = Yeschar()) log "Caller Entered an Invalid Password",0
  411. cls
  412. println
  413. println "@X7F┌──────────────────────────────────────────────────────────────────────@X70┐@X07"
  414. println "@X7F│                 @X71Your password was @X74NOT @X71properly reset.                @X70│@X07"
  415. println "@X7F│                                                                      @X70│@X07"
  416. println "@X7F│  @X71Your new password on this system must meet the following criteria:  @X70│@X07"
  417. println "@X7F│                                                                      @X70│@X07"
  418. println "@X7F│  @X741@X71) It must be between @X74"+pwd_min,"@X71 and @X74"+pwd_max+" @X71characters using @X74A@X71-@X74Z @X71and/or @X740@X71-@X749@X71.     @X70│@X07"
  419. println "@X7F│  @X742@X71) The first four characters cannot match a previous password.      @X70│@X07"
  420. println "@X7F│  @X743@X71) Your new password cannot be a subset of your name.               @X70│@X07"
  421. println "@X7F└@X70──────────────────────────────────────────────────────────────────────┘@X07"
  422. println
  423.    goto not_correct
  424.  
  425.  
  426. :password_match
  427. cls
  428. newpwd password2, changed
  429. if (!changed) goto not_changed
  430. if (logopt_11 = Yeschar()) log "Password Was Successfully Reset for User",0
  431. println
  432. println "@CLS@@X07"
  433. println "@X04    @X7F┌──────────────────────────────────────────────────────────────────────@X70┐"
  434. println "@X04    @X7F│                          @X74PERFECT MATCH!                              @X70│"
  435. println "@X04    @X7F└@X70──────────────────────────────────────────────────────────────────────┘"
  436. println
  437. println "@X04    @X03The two passwords you keyed in did match. Your password will be reset and"
  438. println "@X04    @X03will be valid on your next call."
  439. println
  440. println "@X04    @X03Unfortunately, because your original password failed, you'll be logged"
  441. println "@X04    @X03off the system and will have to call back using your NEW logon password."
  442. println
  443. wait
  444. disptext 273, lfafter+lfbefore+bell+logit
  445. if (msgopt_3 = Yeschar()) message conf3,SYSOP,"AUTOMATED PASSWORD CHANGE",u_name()+ " ("+pcbnode+")","R",0,false,false,ppepath()+"pwd_pass.msg"
  446. if (msgopt_4 = Yeschar()) message conf4,u_name(),"PASSWORD RESET PROGRAM","PASSWORD SUCCESSFULLY RESET","R",0,false,false,ppepath()+"pwd_user.msg"
  447. end
  448.  
  449. :end
  450. end
  451.