Mercurial > kallithea
comparison rhodecode/controllers/api/api.py @ 1989:0f87c784756e beta
API changes
- added removed_user_from_users_group function
- fixed errors on wrong username
- normalized add/remove members from groups functions
- docs updates
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 14 Feb 2012 23:02:23 +0200 |
parents | 87f0800abc7b |
children | bdc0ad168006 |
comparison
equal
deleted
inserted
replaced
1988:5eae67552695 | 1989:0f87c784756e |
---|---|
90 :param apiuser: | 90 :param apiuser: |
91 :param username: | 91 :param username: |
92 """ | 92 """ |
93 | 93 |
94 user = User.get_by_username(username) | 94 user = User.get_by_username(username) |
95 if not user: | 95 if user is None: |
96 return None | 96 return user |
97 | 97 |
98 return dict( | 98 return dict( |
99 id=user.user_id, | 99 id=user.user_id, |
100 username=user.username, | 100 username=user.username, |
101 firstname=user.name, | 101 firstname=user.name, |
256 try: | 256 try: |
257 users_group = UsersGroup.get_by_group_name(group_name) | 257 users_group = UsersGroup.get_by_group_name(group_name) |
258 if not users_group: | 258 if not users_group: |
259 raise JSONRPCError('unknown users group %s' % group_name) | 259 raise JSONRPCError('unknown users group %s' % group_name) |
260 | 260 |
261 try: | 261 user = User.get_by_username(username) |
262 user = User.get_by_username(username) | 262 if user is None: |
263 except NoResultFound: | |
264 raise JSONRPCError('unknown user %s' % username) | 263 raise JSONRPCError('unknown user %s' % username) |
265 | 264 |
266 ugm = UsersGroupModel().add_user_to_group(users_group, user) | 265 ugm = UsersGroupModel().add_user_to_group(users_group, user) |
267 Session.commit() | 266 success = True if ugm != True else False |
268 return dict(id=ugm.users_group_member_id, | 267 msg = 'added member %s to users group %s' % (username, group_name) |
269 msg='created new users group member') | 268 msg = msg if success else 'User is already in that group' |
270 except Exception: | 269 Session.commit() |
271 log.error(traceback.format_exc()) | 270 |
272 raise JSONRPCError('failed to create users group member') | 271 return dict( |
272 id=ugm.users_group_member_id if ugm != True else None, | |
273 success=success, | |
274 msg=msg | |
275 ) | |
276 except Exception: | |
277 log.error(traceback.format_exc()) | |
278 raise JSONRPCError('failed to add users group member') | |
279 | |
280 @HasPermissionAllDecorator('hg.admin') | |
281 def remove_user_from_users_group(self, apiuser, group_name, username): | |
282 """ | |
283 Remove user from a group | |
284 | |
285 :param apiuser | |
286 :param group_name | |
287 :param username | |
288 """ | |
289 | |
290 try: | |
291 users_group = UsersGroup.get_by_group_name(group_name) | |
292 if not users_group: | |
293 raise JSONRPCError('unknown users group %s' % group_name) | |
294 | |
295 user = User.get_by_username(username) | |
296 if user is None: | |
297 raise JSONRPCError('unknown user %s' % username) | |
298 | |
299 success = UsersGroupModel().remove_user_from_group(users_group, user) | |
300 msg = 'removed member %s from users group %s' % (username, group_name) | |
301 msg = msg if success else "User wasn't in group" | |
302 Session.commit() | |
303 return dict(success=success, msg=msg) | |
304 except Exception: | |
305 log.error(traceback.format_exc()) | |
306 raise JSONRPCError('failed to remove user from group') | |
273 | 307 |
274 @HasPermissionAnyDecorator('hg.admin') | 308 @HasPermissionAnyDecorator('hg.admin') |
275 def get_repo(self, apiuser, repo_name): | 309 def get_repo(self, apiuser, repo_name): |
276 """" | 310 """" |
277 Get repository by name | 311 Get repository by name |
384 :param private: | 418 :param private: |
385 :param owner_name: | 419 :param owner_name: |
386 """ | 420 """ |
387 | 421 |
388 try: | 422 try: |
389 try: | 423 owner = User.get_by_username(owner_name) |
390 owner = User.get_by_username(owner_name) | 424 if owner is None: |
391 except NoResultFound: | 425 raise JSONRPCError('unknown user %s' % owner_name) |
392 raise JSONRPCError('unknown user %s' % owner) | |
393 | 426 |
394 if Repository.get_by_repo_name(repo_name): | 427 if Repository.get_by_repo_name(repo_name): |
395 raise JSONRPCError("repo %s already exist" % repo_name) | 428 raise JSONRPCError("repo %s already exist" % repo_name) |
396 | 429 |
397 groups = repo_name.split('/') | 430 groups = repo_name.split('/') |