Mercurial > kallithea
comparison 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 |
comparison
equal
deleted
inserted
replaced
2512:8ece6d04a282 | 2513:388843a3a3c0 |
---|---|
99 return new_user | 99 return new_user |
100 except: | 100 except: |
101 log.error(traceback.format_exc()) | 101 log.error(traceback.format_exc()) |
102 raise | 102 raise |
103 | 103 |
104 def create_or_update(self, username, password, email, name, lastname, | 104 def create_or_update(self, username, password, email, firstname='', |
105 active=True, admin=False, ldap_dn=None): | 105 lastname='', active=True, admin=False, ldap_dn=None): |
106 """ | 106 """ |
107 Creates a new instance if not found, or updates current one | 107 Creates a new instance if not found, or updates current one |
108 | 108 |
109 :param username: | 109 :param username: |
110 :param password: | 110 :param password: |
111 :param email: | 111 :param email: |
112 :param active: | 112 :param active: |
113 :param name: | 113 :param firstname: |
114 :param lastname: | 114 :param lastname: |
115 :param active: | 115 :param active: |
116 :param admin: | 116 :param admin: |
117 :param ldap_dn: | 117 :param ldap_dn: |
118 """ | 118 """ |
122 log.debug('Checking for %s account in RhodeCode database' % username) | 122 log.debug('Checking for %s account in RhodeCode database' % username) |
123 user = User.get_by_username(username, case_insensitive=True) | 123 user = User.get_by_username(username, case_insensitive=True) |
124 if user is None: | 124 if user is None: |
125 log.debug('creating new user %s' % username) | 125 log.debug('creating new user %s' % username) |
126 new_user = User() | 126 new_user = User() |
127 edit = False | |
127 else: | 128 else: |
128 log.debug('updating user %s' % username) | 129 log.debug('updating user %s' % username) |
129 new_user = user | 130 new_user = user |
131 edit = True | |
130 | 132 |
131 try: | 133 try: |
132 new_user.username = username | 134 new_user.username = username |
133 new_user.admin = admin | 135 new_user.admin = admin |
134 new_user.password = get_crypt_password(password) | 136 # set password only if creating an user or password is changed |
135 new_user.api_key = generate_api_key(username) | 137 if edit is False or user.password != password: |
138 new_user.password = get_crypt_password(password) | |
139 new_user.api_key = generate_api_key(username) | |
136 new_user.email = email | 140 new_user.email = email |
137 new_user.active = active | 141 new_user.active = active |
138 new_user.ldap_dn = safe_unicode(ldap_dn) if ldap_dn else None | 142 new_user.ldap_dn = safe_unicode(ldap_dn) if ldap_dn else None |
139 new_user.name = name | 143 new_user.name = firstname |
140 new_user.lastname = lastname | 144 new_user.lastname = lastname |
141 self.sa.add(new_user) | 145 self.sa.add(new_user) |
142 return new_user | 146 return new_user |
143 except (DatabaseError,): | 147 except (DatabaseError,): |
144 log.error(traceback.format_exc()) | 148 log.error(traceback.format_exc()) |