yon
committed
on 16 May 02
fix default value for ID column
openacs-4/.../user/password-update-2.tcl (+7 -3)
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