Mercurial > public > src > rhodecode
changeset 2467:b902baeaa494 beta
API, added delete_user method.
- create_user now also returns new user object data as get_user
- updated docs
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 31 May 2012 18:42:49 +0200 |
parents | c15c3430df74 |
children | 1b12e71b636f |
files | docs/api/api.rst rhodecode/controllers/api/api.py |
diffstat | 2 files changed, 82 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/api/api.rst Wed May 30 21:12:04 2012 +0200 +++ b/docs/api/api.rst Thu May 31 18:42:49 2012 +0200 @@ -187,7 +187,18 @@ result: { "id" : "<new_user_id>", - "msg" : "created new user <username>" + "msg" : "created new user <username>", + "user": { + "id" : "<id>", + "username" : "<username>", + "firstname": "<firstname>", + "lastname" : "<lastname>", + "email" : "<email>", + "active" : "<bool>", + "admin" : "<bool>", + "ldap_dn" : "<ldap_dn>", + "last_login": "<last_login>", + }, } error: null @@ -195,7 +206,7 @@ update_user ----------- -updates current one if such user exists. This command can +updates given user if such user exists. This command can be executed only using api_key belonging to user with admin rights. @@ -220,7 +231,33 @@ result: { "id" : "<edited_user_id>", - "msg" : "updated user <username>" + "msg" : "updated user ID:<userid> <username>" + } + error: null + + +delete_user +----------- + + +deletes givenuser if such user exists. This command can +be executed only using api_key belonging to user with admin rights. + + +INPUT:: + + id : <id_for_response> + api_key : "<api_key>" + method : "delete_user" + args : { + "userid" : "<user_id or username>", + } + +OUTPUT:: + + result: { + "id" : "<edited_user_id>", + "msg" : "deleted user ID:<userid> <username>" } error: null
--- a/rhodecode/controllers/api/api.py Wed May 30 21:12:04 2012 +0200 +++ b/rhodecode/controllers/api/api.py Thu May 31 18:42:49 2012 +0200 @@ -156,14 +156,25 @@ password = PasswordGenerator().gen_password(length=8) try: - usr = UserModel().create_or_update( + user = UserModel().create_or_update( username, password, email, firstname, lastname, active, admin, ldap_dn ) Session.commit() return dict( - id=usr.user_id, - msg='created new user %s' % username + id=user.user_id, + msg='created new user %s' % username, + user=dict( + id=user.user_id, + username=user.username, + firstname=user.name, + lastname=user.lastname, + email=user.email, + active=user.active, + admin=user.admin, + ldap_dn=user.ldap_dn, + last_login=user.last_login, + ) ) except Exception: log.error(traceback.format_exc()) @@ -185,8 +196,9 @@ :param admin: :param ldap_dn: """ - if not UserModel().get_user(userid): - raise JSONRPCError("user %s does not exist" % username) + usr = UserModel().get_user(userid) + if not usr: + raise JSONRPCError("user ID:%s does not exist" % userid) try: usr = UserModel().create_or_update( @@ -196,11 +208,34 @@ Session.commit() return dict( id=usr.user_id, - msg='updated user %s' % username + msg='updated user ID:%s %s' % (usr.user_id, usr.username) ) except Exception: log.error(traceback.format_exc()) - raise JSONRPCError('failed to update user %s' % username) + raise JSONRPCError('failed to update user %s' % userid) + + @HasPermissionAllDecorator('hg.admin') + def delete_user(self, apiuser, userid): + """" + Deletes an user + + :param apiuser: + """ + usr = UserModel().get_user(userid) + if not usr: + raise JSONRPCError("user ID:%s does not exist" % userid) + + try: + UserModel().delete(userid) + Session.commit() + return dict( + id=usr.user_id, + msg='deleted user ID:%s %s' % (usr.user_id, usr.username) + ) + except Exception: + log.error(traceback.format_exc()) + raise JSONRPCError('failed to delete ID:%s %s' % (usr.user_id, + usr.username)) @HasPermissionAllDecorator('hg.admin') def get_users_group(self, apiuser, group_name):