We allow our web users to change their internet password, but to avoid a
passerby of a logged in browser to use the feature, the current password
must be entered. Here's how....
Code
The form has three editable fields - oldPassword, newPassword, newPassword2 (for typing confirmation). The new password and the confirmation are compared by JavaScript, client side. The following is a code segment of an agent launched by a button. The key is using the @Function @Password to encrypt the oldPassword for comparison to the HTTPPassword item value in the Person Document.
Set personDocument = personView.
getDocumentbykey(webDoc.Remote_User(0))
If Not personDocument Is Nothing Then
If UserProfileDoc.FirstLoginFlag(0) = "1"
Then 'if not first login required password
change, check old passsword
Dim oldPass
oldPass = Evaluate("@Password
(oldPassword)", webDoc)
If persondocument.HTTPPassword(0)
<> oldpass(0) Then
alert = |window.alert("Old Password for
CQMi account | & webDoc.Remote_User(0)
& | Invalid..")|
Print"<javascript>"
Print "<SCRIPT LANGUAGE=
JavaScript>"
Print alert
Print "window.history.back()"
Print "</SCRIPT>"
Exit Sub
End If
End If
persondocument.HTTPPassword =
webDoc.newpassword(0)
Call persondocument.ComputeWithForm
( False, False )
persondocument.Save False, True
alert = |window.alert("Password for
CQMi account | & webDoc.Remote_User(0)
& | changed...")|