comparison rhodecode/controllers/api/api.py @ 3126:703070153bc1 beta

added API method for checking IP
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 31 Dec 2012 01:51:30 +0100
parents 9b92cf5a0cca
children 3563c47e52fd
comparison
equal deleted inserted replaced
3125:9b92cf5a0cca 3126:703070153bc1
36 from rhodecode.model.scm import ScmModel 36 from rhodecode.model.scm import ScmModel
37 from rhodecode.model.repo import RepoModel 37 from rhodecode.model.repo import RepoModel
38 from rhodecode.model.user import UserModel 38 from rhodecode.model.user import UserModel
39 from rhodecode.model.users_group import UsersGroupModel 39 from rhodecode.model.users_group import UsersGroupModel
40 from rhodecode.model.permission import PermissionModel 40 from rhodecode.model.permission import PermissionModel
41 from rhodecode.model.db import Repository, RhodeCodeSetting 41 from rhodecode.model.db import Repository, RhodeCodeSetting, UserIpMap
42 42
43 log = logging.getLogger(__name__) 43 log = logging.getLogger(__name__)
44 44
45 45
46 class Optional(object): 46 class Optional(object):
138 138
139 Each function should also **raise** JSONRPCError for any 139 Each function should also **raise** JSONRPCError for any
140 errors that happens 140 errors that happens
141 141
142 """ 142 """
143 def _get_ip_addr(self, environ):
144 from rhodecode.lib.base import _get_ip_addr
145 return _get_ip_addr(environ)
146 143
147 @HasPermissionAllDecorator('hg.admin') 144 @HasPermissionAllDecorator('hg.admin')
148 def pull(self, apiuser, repoid): 145 def pull(self, apiuser, repoid):
149 """ 146 """
150 Dispatch pull action on given repo 147 Dispatch pull action on given repo
211 except Exception: 208 except Exception:
212 log.error(traceback.format_exc()) 209 log.error(traceback.format_exc())
213 raise JSONRPCError( 210 raise JSONRPCError(
214 'Error occurred locking repository `%s`' % repo.repo_name 211 'Error occurred locking repository `%s`' % repo.repo_name
215 ) 212 )
213
214 @HasPermissionAllDecorator('hg.admin')
215 def show_ip(self, apiuser, userid):
216 """
217 Shows IP address as seen from RhodeCode server, together with all
218 defined IP addresses for given user
219
220 :param apiuser:
221 :param userid:
222 """
223 user = get_user_or_error(userid)
224 ips = UserIpMap.query().filter(UserIpMap.user == user).all()
225 return dict(
226 ip_addr_server=self.ip_addr,
227 user_ips=ips
228 )
216 229
217 @HasPermissionAllDecorator('hg.admin') 230 @HasPermissionAllDecorator('hg.admin')
218 def get_user(self, apiuser, userid): 231 def get_user(self, apiuser, userid):
219 """" 232 """"
220 Get a user by username 233 Get a user by username