aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/user.py
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-06-26 21:57:31 +0200
committerMarcin Kuzminski <marcin@python-works.com>2012-06-26 21:57:31 +0200
commit9b87c9714ccaca0aa3525200e135a552768dcaa5 (patch)
tree9f84d8c5cc57a1eb0802484f78f2463080fc1d5c /rhodecode/model/user.py
parent53a7a1b00ff1d43b31c914f96bb9c1c3e27de3a7 (diff)
Updated create_or_update method to not change API key when password is not updated
--HG-- branch : beta
Diffstat (limited to 'rhodecode/model/user.py')
-rw-r--r--rhodecode/model/user.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py
index 4e5c559a..5b4f9595 100644
--- a/rhodecode/model/user.py
+++ b/rhodecode/model/user.py
@@ -101,8 +101,8 @@ class UserModel(BaseModel):
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 @@ class UserModel(BaseModel):
:param password:
:param email:
:param active:
- :param name:
+ :param firstname:
:param lastname:
:param active:
:param admin:
@@ -124,19 +124,23 @@ class UserModel(BaseModel):
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