# HG changeset patch # User Marcin Kuzminski # Date 1319504548 -7200 # Node ID 019026a8cf67c543ffc03c95313f5eee29ae0339 # Parent 089ef495e9dd22649ada152a19a25c0197427caa implements #237 added password confirmation for my account and admin edit user. diff -r 089ef495e9dd -r 019026a8cf67 rhodecode/model/forms.py --- a/rhodecode/model/forms.py Mon Oct 24 23:28:04 2011 +0200 +++ b/rhodecode/model/forms.py Tue Oct 25 03:02:28 2011 +0200 @@ -185,8 +185,9 @@ class ValidPasswordsMatch(formencode.validators.FancyValidator): def validate_python(self, value, state): - - if value['password'] != value['password_confirmation']: + + pass_val = value.get('password') or value.get('new_password') + if pass_val != value['password_confirmation']: e_dict = {'password_confirmation': _('Passwords do not match')} raise formencode.Invalid('', value, state, error_dict=e_dict) @@ -497,8 +498,6 @@ 'tooShort':_('Enter %(min)i characters or more')} ) - - #chained validators have access to all data chained_validators = [ValidAuth] def UserForm(edit=False, old_data={}): @@ -509,15 +508,18 @@ ValidUsername(edit, old_data)) if edit: new_password = All(UnicodeString(strip=True, min=6, not_empty=False)) + password_confirmation = All(UnicodeString(strip=True, min=6, not_empty=False)) admin = StringBoolean(if_missing=False) else: password = All(UnicodeString(strip=True, min=6, not_empty=True)) + password_confirmation = All(UnicodeString(strip=True, min=6, not_empty=False)) + active = StringBoolean(if_missing=False) name = UnicodeString(strip=True, min=1, not_empty=True) lastname = UnicodeString(strip=True, min=1, not_empty=True) email = All(Email(not_empty=True), UniqSystemEmail(old_data)) - chained_validators = [ValidPassword] + chained_validators = [ValidPasswordsMatch, ValidPassword] return _UserForm diff -r 089ef495e9dd -r 019026a8cf67 rhodecode/templates/admin/users/user_add.html --- a/rhodecode/templates/admin/users/user_add.html Mon Oct 24 23:28:04 2011 +0200 +++ b/rhodecode/templates/admin/users/user_add.html Tue Oct 25 03:02:28 2011 +0200 @@ -44,7 +44,16 @@ ${h.password('password',class_='small')} - + +
+
+ +
+
+ ${h.password('password_confirmation',class_="small",autocomplete="off")} +
+
+
diff -r 089ef495e9dd -r 019026a8cf67 rhodecode/templates/admin/users/user_edit.html --- a/rhodecode/templates/admin/users/user_edit.html Mon Oct 24 23:28:04 2011 +0200 +++ b/rhodecode/templates/admin/users/user_edit.html Tue Oct 25 03:02:28 2011 +0200 @@ -68,7 +68,16 @@ ${h.password('new_password',class_='medium',autocomplete="off")}
- + +
+
+ +
+
+ ${h.password('password_confirmation',class_="medium",autocomplete="off")} +
+
+
diff -r 089ef495e9dd -r 019026a8cf67 rhodecode/templates/admin/users/user_edit_my_account.html --- a/rhodecode/templates/admin/users/user_edit_my_account.html Mon Oct 24 23:28:04 2011 +0200 +++ b/rhodecode/templates/admin/users/user_edit_my_account.html Tue Oct 25 03:02:28 2011 +0200 @@ -57,7 +57,16 @@ ${h.password('new_password',class_="medium",autocomplete="off")}
- + +
+
+ +
+
+ ${h.password('password_confirmation',class_="medium",autocomplete="off")} +
+
+
@@ -154,10 +163,12 @@ %endfor %else: +
${_('No repositories yet')} %if h.HasPermissionAny('hg.admin','hg.create.repository')(): - ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'))} + ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-button-small")} %endif +
%endif diff -r 089ef495e9dd -r 019026a8cf67 rhodecode/tests/functional/test_admin_settings.py --- a/rhodecode/tests/functional/test_admin_settings.py Mon Oct 24 23:28:04 2011 +0200 +++ b/rhodecode/tests/functional/test_admin_settings.py Tue Oct 25 03:02:28 2011 +0200 @@ -137,6 +137,7 @@ params=dict(_method='put', username='test_admin', new_password=new_password, + password_confirmation = new_password, password='', name=new_name, lastname=new_lastname, @@ -160,6 +161,7 @@ _method='put', username='test_admin', new_password=old_password, + password_confirmation = old_password, password='', name=old_name, lastname=old_lastname, @@ -186,6 +188,7 @@ _method='put', username='test_admin', new_password='test12', + password_confirmation = 'test122', name='NewName', lastname='NewLastname', email=new_email,)) @@ -201,6 +204,7 @@ _method='put', username='test_admin', new_password='test12', + password_confirmation = 'test122', name='NewName', lastname='NewLastname', email=new_email,)) diff -r 089ef495e9dd -r 019026a8cf67 rhodecode/tests/functional/test_admin_users.py --- a/rhodecode/tests/functional/test_admin_users.py Mon Oct 24 23:28:04 2011 +0200 +++ b/rhodecode/tests/functional/test_admin_users.py Tue Oct 25 03:02:28 2011 +0200 @@ -16,12 +16,14 @@ self.log_user() username = 'newtestuser' password = 'test12' + password_confirmation = password name = 'name' lastname = 'lastname' email = 'mail@mail.com' response = self.app.post(url('users'), {'username':username, 'password':password, + 'password_confirmation':password_confirmation, 'name':name, 'active':True, 'lastname':lastname, @@ -90,6 +92,7 @@ response = self.app.post(url('users'), {'username':username, 'password':password, + 'password_confirmation':password, 'name':name, 'active':True, 'lastname':lastname,