auth::local::password::ChangePassword (private)
auth::local::password::ChangePassword username new_password \ [ old_password ] [ parameters ] [ authority_id ]
Defined in packages/acs-authentication/tcl/local-procs.tcl
Implements the ChangePassword operation of the auth_password service contract for the local account implementation.
- Parameters:
- username (required)
- new_password (required)
- old_password (optional)
- parameters (optional)
- authority_id (optional)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- auth_password_implementations
Source code: array set result { password_status {} password_message {} } set user_id [acs_user::get_by_username -authority_id $authority_id -username $username] if { $user_id eq "" } { set result(password_status) "no_account" return [array get result] } if { $old_password ne "" } { if { ![ad_check_password $user_id $old_password] } { set result(password_status) "old_password_bad" return [array get result] } } ad_try { ad_change_password $user_id $new_password } on error {errorMsg} { set result(password_status) "change_error" ad_log Error "Error changing local password for username $username, user_id $user_id: $errorMsg" return [array get result] } set result(password_status) "ok" if { [parameter::get -parameter EmailAccountOwnerOnPasswordChangeP -package_id [ad_acs_kernel_id] -default 1] } { ad_try { set user_id [acs_user::get_by_username -username $username -authority_id $authority_id] set user_email [party::get -party_id $user_id -element email] set system_name [ad_system_name] set pvt_home_name [ad_pvt_home_name] set password_update_link_text [_ acs-subsite.Change_my_Password] if { [auth::UseEmailForLoginP] } { set account_id_label [_ acs-subsite.Email] set account_id $user_email } else { set account_id_label [_ acs-subsite.Username] set account_id [acs_user::get_user_info -user_id $user_id -element username] } set subject [_ acs-subsite.Password_changed_subject] set body [_ acs-subsite.Password_changed_body] acs_mail_lite::send -send_immediately -to_addr $user_email -from_addr [ad_outgoing_sender] -subject $subject -body $body } on error {errorMsg} { ad_log Error "Error sending out password changed notification to account owner with user_id $user_id, email $user_email: $errorMsg" } } return [array get result]XQL Not present: PostgreSQL, Oracle Generic XQL file: packages/acs-authentication/tcl/local-procs.xql