| |
1 |
1 |
ad_page_contract { |
| |
2 |
2 |
Updates the users password if |
| |
3 |
3 |
<ul> |
| |
4 |
4 |
<li>password_old is correct |
| |
5 |
5 |
<li>password_1 matches password_2 |
| |
6 |
6 |
|
| |
7 |
7 |
@cvs-id $Id$ |
| |
8 |
8 |
} -query { |
| |
9 |
9 |
password_1:notnull |
| |
10 |
10 |
password_2:notnull |
| |
11 |
11 |
{password_old ""} |
| |
12 |
12 |
{user_id:integer ""} |
| |
13 |
13 |
{return_url ""} |
| |
14 |
14 |
} -validate { |
| |
15 |
15 |
old_password_match -requires {user_id:integer password_old} { |
| |
16 |
|
if {![permission::permission_p -object_id $user_id -privilege "admin"] && ![empty_string_p $user_id] && ![ad_check_password $user_id $password_old]} { |
| |
|
16 |
if {![permission::permission_p -object_id $user_id -privilege admin] && ![empty_string_p $user_id] && ![ad_check_password $user_id $password_old]} { |
| |
17 |
17 |
ad_complain "Your current password does not match what you entered in the form." |
| |
18 |
18 |
} |
| |
19 |
19 |
} |
| |
20 |
20 |
confirm_password -requires {password_2:notnull} { |
| |
21 |
21 |
if {[empty_string_p $password_2]} { |
| |
22 |
22 |
ad_complain "You need to confirm the password that you typed. (Type the same thing again.)" |
| |
23 |
23 |
} |
| |
24 |
24 |
} |
| |
25 |
25 |
new_password_match -requires {password_1:notnull password_2:notnull confirm_password} { |
| |
26 |
26 |
if {![string equal $password_1 $password_2]} { |
| |
27 |
27 |
ad_complain "Your passwords don't match! Presumably, you made a typo while entering one of them." |
| |
28 |
28 |
} |
| |
29 |
29 |
} |
| |
30 |
30 |
} |
| |
31 |
31 |
|
| |
32 |
32 |
if {[empty_string_p $user_id]} { |
| |
33 |
33 |
set user_id [ad_verify_and_get_user_id] |
| |
34 |
34 |
} |
| |
35 |
35 |
|
| |
36 |
|
permission::require_permission -party_id $user_id -object_id $user_id -privilege "write" |
| |
|
36 |
set admin_p [permission::permission_p -object_id $user_id -privilege admin] |
| |
37 |
37 |
|
| |
|
38 |
if {!$admin_p} { |
| |
|
39 |
permission::require_permission -party_id $user_id -object_id $user_id -privilege write |
| |
|
40 |
} |
| |
|
41 |
|
| |
38 |
42 |
if {[catch {ad_change_password $user_id $password_1} errmsg]} { |
| |
39 |
43 |
ad_return_error "Wasn't able to change your password. Please contact the system administrator." |
| |
40 |
44 |
} |
| |
41 |
45 |
|
| |
42 |
46 |
if {[empty_string_p $return_url]} { |
| |
43 |
47 |
set return_url [ad_parameter -package_id [ad_acs_kernel_id] "HomeURL"] |
| |
44 |
48 |
} |
| |
45 |
49 |
|
| |
46 |
50 |
ad_returnredirect $return_url |