Mercurial > kallithea
comparison rhodecode/controllers/api/api.py @ 2657:001c7e2ae986 beta
fixed api issue with changing username during update_user
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 25 Jul 2012 00:38:05 +0200 |
parents | 8be70a4d72c7 |
children | 4565e655ea2a |
comparison
equal
deleted
inserted
replaced
2656:c785ad556d44 | 2657:001c7e2ae986 |
---|---|
258 :param password: | 258 :param password: |
259 """ | 259 """ |
260 | 260 |
261 user = get_user_or_error(userid) | 261 user = get_user_or_error(userid) |
262 | 262 |
263 #return old attribute if Optional is passed. We don't change parameter | 263 # call function and store only updated arguments |
264 # so user doesn't get updated parameters | 264 updates = {} |
265 get = lambda attr, name: ( | 265 |
266 getattr(user, name) if isinstance(attr, Optional) else attr | 266 def store_update(attr, name): |
267 ) | 267 if not isinstance(attr, Optional): |
268 | 268 updates[name] = attr |
269 try: | 269 |
270 | 270 try: |
271 user = UserModel().create_or_update( | 271 |
272 username=get(username, 'username'), | 272 store_update(username, 'username') |
273 password=get(password, 'password'), | 273 store_update(password, 'password') |
274 email=get(email, 'email'), | 274 store_update(email, 'email') |
275 firstname=get(firstname, 'name'), | 275 store_update(firstname, 'name') |
276 lastname=get(lastname, 'lastname'), | 276 store_update(lastname, 'lastname') |
277 active=get(active, 'active'), | 277 store_update(active, 'active') |
278 admin=get(admin, 'admin'), | 278 store_update(admin, 'admin') |
279 ldap_dn=get(ldap_dn, 'ldap_dn') | 279 store_update(ldap_dn, 'ldap_dn') |
280 ) | 280 |
281 user = UserModel().update_user(user, **updates) | |
281 Session().commit() | 282 Session().commit() |
282 return dict( | 283 return dict( |
283 msg='updated user ID:%s %s' % (user.user_id, user.username), | 284 msg='updated user ID:%s %s' % (user.user_id, user.username), |
284 user=user.get_api_data() | 285 user=user.get_api_data() |
285 ) | 286 ) |