Show More
@@ -289,6 +289,21 b' def get_container_username(environ, conf' | |||
|
289 | 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 | 307 | class AuthUser(object): |
|
293 | 308 | """ |
|
294 | 309 | A simple object that handles all attributes of user in RhodeCode |
@@ -377,6 +392,12 b' class AuthUser(object):' | |||
|
377 | 392 | |
|
378 | 393 | @classmethod |
|
379 | 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 | 401 | user_id = cookie_store.get('user_id') |
|
381 | 402 | username = cookie_store.get('username') |
|
382 | 403 | api_key = cookie_store.get('api_key') |
@@ -17,7 +17,7 b' from rhodecode import __version__, BACKE' | |||
|
17 | 17 | |
|
18 | 18 | from rhodecode.lib import str2bool, safe_unicode |
|
19 | 19 | from rhodecode.lib.auth import AuthUser, get_container_username, authfunc,\ |
|
20 | HasPermissionAnyMiddleware | |
|
20 | HasPermissionAnyMiddleware, CookieStoreWrapper | |
|
21 | 21 | from rhodecode.lib.utils import get_repo_slug, invalidate_cache |
|
22 | 22 | from rhodecode.model import meta |
|
23 | 23 | |
@@ -133,7 +133,7 b' class BaseController(WSGIController):' | |||
|
133 | 133 | try: |
|
134 | 134 | # make sure that we update permissions each time we call controller |
|
135 | 135 | api_key = request.GET.get('api_key') |
|
136 |
cookie_store = session.get('rhodecode_user') |
|
|
136 | cookie_store = CookieStoreWrapper(session.get('rhodecode_user')) | |
|
137 | 137 | user_id = cookie_store.get('user_id', None) |
|
138 | 138 | username = get_container_username(environ, config) |
|
139 | 139 | |
@@ -142,11 +142,9 b' class BaseController(WSGIController):' | |||
|
142 | 142 | self.rhodecode_user = c.rhodecode_user = auth_user |
|
143 | 143 | if not self.rhodecode_user.is_authenticated and \ |
|
144 | 144 | self.rhodecode_user.user_id is not None: |
|
145 |
self.rhodecode_user |
|
|
146 |
|
|
|
147 | ||
|
148 | session['rhodecode_user'] = self.rhodecode_user.get_cookie_store() | |
|
149 | session.save() | |
|
145 | self.rhodecode_user.set_authenticated( | |
|
146 | cookie_store.get('is_authenticated') | |
|
147 | ) | |
|
150 | 148 | log.info('User: %s accessed %s' % ( |
|
151 | 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