.TITLE PASSWORD_REMOVE - Remove a password from a username .IDENT /V4.4/ ;++ ; Facility: PASSWORD_REMOVE - LIB:PASSWORD_REMOVE - VAX/VMS 4.4 FORTRAN. ; ; Abstract: Troy Frericks, 19-Aug-1986 ; Removes the password (sets a null password) for the ; userID inputted. Requires GRPPRV to modify users in ; the same UIC group (ie, instructors at ISU). Requires ; SYSPRV to set any user. If a user is having problems ; with a password (forgotten), it is expected that they ; will have it removed with this program, then they will ; log on immediately and issue a $ SET PASSWORD (Type ; only to the "old password" prompt). ; ; Modified: Troy Frericks, 20-Aug-1986 ; Terminate if only is typed to username prompt. ; Check status of lib$get_input. ; Upshift input. ; Accept foreign input by changing lib$get_input to ; lib$get_foreign (get_foreign will call get_input if ; there is on foreign input. This change will allow the ; program to be executed by the command $ RMVPWD USERID ; if the symbol $ RMVPWD :== $DISK:[DIR]PASSWORD_REMOVE ; is set up. ; ;-- .SUBTITLE DEFINATIONS .PSECT PASSWORD_REMOVE_DEF, NOEXE; declarations .LIBRARY "SYS$LIBRARY:LIB.MLB" ; whare to find include file .NOCROSS ; don't show cross-ref table $UAIDEF ; define symbols for setuai list: .WORD 8 ; length of item .WORD uai$_pwd ; item is password .QUAD 0 ; password is null .LONG ; actual lenght (unused) .LONG 0 ; end list of items username: .ASCID ' ' ; allocate username string prompt: .ASCID 'UserID to remove password: '; only prompt for program .PSECT PASSWORD_REMOVE, EXE ; and now the code .ENTRY PASSWORD_REMOVE,0 ; starts here PUSHAL username ; 3rd parameter for get foreign PUSHAL prompt ; 2nd PUSHAL username ; 1st CALLS #3,g^lib$get_foreign ; call get foreign BLBC R0, error ; if error on input do error CMPW username, #0 ; if just BEQL exit ; to prompt, then exit $setuai_s ,,username,list ; remove the password BLBC R0, error ; if error on do error JMP EXIT ; end program ERROR: PUSHL r0 ; push error number on stack CALLS #1,g^lib$signal ; and print that error message EXIT: RET ; return (end of program) .END password_remove ; from entry