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('/')