changeset 490:74b9bed279ae celery

fixed validation of user email in user creation, and editing on admin panel
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 20 Sep 2010 22:55:55 +0200
parents 460ad816820d
children fefffd6fd5f4
files pylons_app/controllers/admin/users.py pylons_app/model/forms.py
diffstat 2 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/controllers/admin/users.py	Mon Sep 20 22:47:20 2010 +0200
+++ b/pylons_app/controllers/admin/users.py	Mon Sep 20 22:55:55 2010 +0200
@@ -98,7 +98,10 @@
         #           method='put')
         # url('user', id=ID)
         user_model = UserModel()
-        _form = UserForm(edit=True, old_data={'user_id':id})()
+        c.user = user_model.get_user(id)
+        
+        _form = UserForm(edit=True, old_data={'user_id':id,
+                                              'email':c.user.email})()
         form_result = {}
         try:
             form_result = _form.to_python(dict(request.POST))
@@ -106,7 +109,6 @@
             h.flash(_('User updated succesfully'), category='success')
                            
         except formencode.Invalid as errors:
-            c.user = user_model.get_user(id)
             return htmlfill.render(
                 render('admin/users/user_edit.html'),
                 defaults=errors.value,
--- a/pylons_app/model/forms.py	Mon Sep 20 22:47:20 2010 +0200
+++ b/pylons_app/model/forms.py	Mon Sep 20 22:55:55 2010 +0200
@@ -212,7 +212,7 @@
 def UniqSystemEmail(old_data):
     class _UniqSystemEmail(formencode.validators.FancyValidator):
         def to_python(self, value, state):
-            if old_data['email'] != value:
+            if old_data.get('email') != value:
                 sa = meta.Session
                 try:
                     user = sa.query(User).filter(User.email == value).scalar()