diff rhodecode/model/user.py @ 2513:388843a3a3c0 beta

Updated create_or_update method to not change API key when password is not updated
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 26 Jun 2012 21:57:31 +0200
parents b5b34d71b23b
children 17893d61792a
line wrap: on
line diff
--- a/rhodecode/model/user.py	Tue Jun 26 04:11:10 2012 +0200
+++ b/rhodecode/model/user.py	Tue Jun 26 21:57:31 2012 +0200
@@ -101,8 +101,8 @@
             log.error(traceback.format_exc())
             raise
 
-    def create_or_update(self, username, password, email, name, lastname,
-                         active=True, admin=False, ldap_dn=None):
+    def create_or_update(self, username, password, email, firstname='',
+                         lastname='', active=True, admin=False, ldap_dn=None):
         """
         Creates a new instance if not found, or updates current one
 
@@ -110,7 +110,7 @@
         :param password:
         :param email:
         :param active:
-        :param name:
+        :param firstname:
         :param lastname:
         :param active:
         :param admin:
@@ -124,19 +124,23 @@
         if user is None:
             log.debug('creating new user %s' % username)
             new_user = User()
+            edit = False
         else:
             log.debug('updating user %s' % username)
             new_user = user
+            edit = True
 
         try:
             new_user.username = username
             new_user.admin = admin
-            new_user.password = get_crypt_password(password)
-            new_user.api_key = generate_api_key(username)
+            # set password only if creating an user or password is changed
+            if edit is False or user.password != password:
+                new_user.password = get_crypt_password(password)
+                new_user.api_key = generate_api_key(username)
             new_user.email = email
             new_user.active = active
             new_user.ldap_dn = safe_unicode(ldap_dn) if ldap_dn else None
-            new_user.name = name
+            new_user.name = firstname
             new_user.lastname = lastname
             self.sa.add(new_user)
             return new_user