Show More
@@ -289,6 +289,21 b' def get_container_username(environ, conf' | |||||
289 | return username |
|
289 | return username | |
290 |
|
290 | |||
291 |
|
291 | |||
|
292 | class CookieStoreWrapper(object): | |||
|
293 | ||||
|
294 | def __init__(self, cookie_store): | |||
|
295 | self.cookie_store = cookie_store | |||
|
296 | ||||
|
297 | def __repr__(self): | |||
|
298 | return 'CookieStore<%s>' % (self.cookie_store) | |||
|
299 | ||||
|
300 | def get(self, key, other=None): | |||
|
301 | if isinstance(self.cookie_store, dict): | |||
|
302 | return self.cookie_store.get(key, other) | |||
|
303 | elif isinstance(self.cookie_store, AuthUser): | |||
|
304 | return self.cookie_store.__dict__.get(key, other) | |||
|
305 | ||||
|
306 | ||||
292 | class AuthUser(object): |
|
307 | class AuthUser(object): | |
293 | """ |
|
308 | """ | |
294 | A simple object that handles all attributes of user in RhodeCode |
|
309 | A simple object that handles all attributes of user in RhodeCode | |
@@ -377,6 +392,12 b' class AuthUser(object):' | |||||
377 |
|
392 | |||
378 | @classmethod |
|
393 | @classmethod | |
379 | def from_cookie_store(cls, cookie_store): |
|
394 | def from_cookie_store(cls, cookie_store): | |
|
395 | """ | |||
|
396 | Creates AuthUser from a cookie store | |||
|
397 | ||||
|
398 | :param cls: | |||
|
399 | :param cookie_store: | |||
|
400 | """ | |||
380 | user_id = cookie_store.get('user_id') |
|
401 | user_id = cookie_store.get('user_id') | |
381 | username = cookie_store.get('username') |
|
402 | username = cookie_store.get('username') | |
382 | api_key = cookie_store.get('api_key') |
|
403 | api_key = cookie_store.get('api_key') |
@@ -17,7 +17,7 b' from rhodecode import __version__, BACKE' | |||||
17 |
|
17 | |||
18 | from rhodecode.lib import str2bool, safe_unicode |
|
18 | from rhodecode.lib import str2bool, safe_unicode | |
19 | from rhodecode.lib.auth import AuthUser, get_container_username, authfunc,\ |
|
19 | from rhodecode.lib.auth import AuthUser, get_container_username, authfunc,\ | |
20 | HasPermissionAnyMiddleware |
|
20 | HasPermissionAnyMiddleware, CookieStoreWrapper | |
21 | from rhodecode.lib.utils import get_repo_slug, invalidate_cache |
|
21 | from rhodecode.lib.utils import get_repo_slug, invalidate_cache | |
22 | from rhodecode.model import meta |
|
22 | from rhodecode.model import meta | |
23 |
|
23 | |||
@@ -133,7 +133,7 b' class BaseController(WSGIController):' | |||||
133 | try: |
|
133 | try: | |
134 | # make sure that we update permissions each time we call controller |
|
134 | # make sure that we update permissions each time we call controller | |
135 | api_key = request.GET.get('api_key') |
|
135 | api_key = request.GET.get('api_key') | |
136 |
cookie_store = session.get('rhodecode_user') |
|
136 | cookie_store = CookieStoreWrapper(session.get('rhodecode_user')) | |
137 | user_id = cookie_store.get('user_id', None) |
|
137 | user_id = cookie_store.get('user_id', None) | |
138 | username = get_container_username(environ, config) |
|
138 | username = get_container_username(environ, config) | |
139 |
|
139 | |||
@@ -142,11 +142,9 b' class BaseController(WSGIController):' | |||||
142 | self.rhodecode_user = c.rhodecode_user = auth_user |
|
142 | self.rhodecode_user = c.rhodecode_user = auth_user | |
143 | if not self.rhodecode_user.is_authenticated and \ |
|
143 | if not self.rhodecode_user.is_authenticated and \ | |
144 | self.rhodecode_user.user_id is not None: |
|
144 | self.rhodecode_user.user_id is not None: | |
145 |
self.rhodecode_user |
|
145 | self.rhodecode_user.set_authenticated( | |
146 |
|
|
146 | cookie_store.get('is_authenticated') | |
147 |
|
147 | ) | ||
148 | session['rhodecode_user'] = self.rhodecode_user.get_cookie_store() |
|
|||
149 | session.save() |
|
|||
150 | log.info('User: %s accessed %s' % ( |
|
148 | log.info('User: %s accessed %s' % ( | |
151 | auth_user, safe_unicode(environ.get('PATH_INFO'))) |
|
149 | auth_user, safe_unicode(environ.get('PATH_INFO'))) | |
152 | ) |
|
150 | ) |
General Comments 0
You need to be logged in to leave comments.
Login now