comparison rhodecode/controllers/api/api.py @ 2151:12ceeda33339 beta

#404 API extensions for showing permission for users - added permissions to get_user function - added last_login to get_user and get_users function - modified custom JSON encoder to handle non standard python types, like set, OrderedDict, datetime, date
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 21 Mar 2012 21:00:55 +0200
parents ee45677c4edc
children dc2584ba5fbc 347b00545b60
comparison
equal deleted inserted replaced
2150:a8c9c0094ddf 2151:12ceeda33339
28 import traceback 28 import traceback
29 import logging 29 import logging
30 30
31 from rhodecode.controllers.api import JSONRPCController, JSONRPCError 31 from rhodecode.controllers.api import JSONRPCController, JSONRPCError
32 from rhodecode.lib.auth import HasPermissionAllDecorator, \ 32 from rhodecode.lib.auth import HasPermissionAllDecorator, \
33 HasPermissionAnyDecorator, PasswordGenerator 33 HasPermissionAnyDecorator, PasswordGenerator, AuthUser
34 34
35 from rhodecode.model.meta import Session 35 from rhodecode.model.meta import Session
36 from rhodecode.model.scm import ScmModel 36 from rhodecode.model.scm import ScmModel
37 from rhodecode.model.db import User, UsersGroup, RepoGroup, Repository 37 from rhodecode.model.db import User, UsersGroup, Repository
38 from rhodecode.model.repo import RepoModel 38 from rhodecode.model.repo import RepoModel
39 from rhodecode.model.user import UserModel 39 from rhodecode.model.user import UserModel
40 from rhodecode.model.users_group import UsersGroupModel 40 from rhodecode.model.users_group import UsersGroupModel
41 from rhodecode.model.repos_group import ReposGroupModel
42 from rhodecode.lib.utils import map_groups 41 from rhodecode.lib.utils import map_groups
43
44 42
45 log = logging.getLogger(__name__) 43 log = logging.getLogger(__name__)
46 44
47 45
48 class ApiController(JSONRPCController): 46 class ApiController(JSONRPCController):
99 firstname=user.name, 97 firstname=user.name,
100 lastname=user.lastname, 98 lastname=user.lastname,
101 email=user.email, 99 email=user.email,
102 active=user.active, 100 active=user.active,
103 admin=user.admin, 101 admin=user.admin,
104 ldap_dn=user.ldap_dn 102 ldap_dn=user.ldap_dn,
103 last_login=user.last_login,
104 permissions=AuthUser(user_id=user.user_id).permissions
105 ) 105 )
106 106
107 @HasPermissionAllDecorator('hg.admin') 107 @HasPermissionAllDecorator('hg.admin')
108 def get_users(self, apiuser): 108 def get_users(self, apiuser):
109 """" 109 """"
121 firstname=user.name, 121 firstname=user.name,
122 lastname=user.lastname, 122 lastname=user.lastname,
123 email=user.email, 123 email=user.email,
124 active=user.active, 124 active=user.active,
125 admin=user.admin, 125 admin=user.admin,
126 ldap_dn=user.ldap_dn 126 ldap_dn=user.ldap_dn,
127 last_login=user.last_login,
127 ) 128 )
128 ) 129 )
129 return result 130 return result
130 131
131 @HasPermissionAllDecorator('hg.admin') 132 @HasPermissionAllDecorator('hg.admin')