changeset 314:0d26d46bd370

protected againts changing default user.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 29 Jun 2010 20:36:09 +0200
parents eb378708377e
children b00945765e7b
files pylons_app/model/user_model.py
diffstat 1 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/model/user_model.py	Tue Jun 29 13:51:03 2010 +0200
+++ b/pylons_app/model/user_model.py	Tue Jun 29 20:36:09 2010 +0200
@@ -26,9 +26,12 @@
 
 from pylons_app.model.db import User
 from pylons_app.model.meta import Session
+from pylons.i18n.translation import _
 import logging
 log = logging.getLogger(__name__)
 
+class DefaultUserException(Exception):pass
+
 class UserModel(object):
 
     def __init__(self):
@@ -53,6 +56,10 @@
     def update(self, id, form_data):
         try:
             new_user = self.sa.query(User).get(id)
+            if new_user.username == 'default':
+                raise DefaultUserException(
+                                _("You can't Edit this user since it's" 
+                                  " crucial for entire application"))
             for k, v in form_data.items():
                 if k == 'new_password' and v != '':
                     
@@ -68,8 +75,15 @@
             raise      
 
     def delete(self, id):
+        
         try:
-            self.sa.delete(self.sa.query(User).get(id))
+            
+            user = self.sa.query(User).get(id)
+            if user.username == 'default':
+                raise DefaultUserException(
+                                _("You can't remove this user since it's" 
+                                  " crucial for entire application"))
+            self.sa.delete(user)
             self.sa.commit()            
         except Exception as e:
             log.error(e)