Mercurial > kallithea
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 |