##// END OF EJS Templates
Added session wrapper, for rc 1.2.X compatibility. Adds backwards compatability...
marcink -
r2030:61f9aeb2 beta
parent child Browse files
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') or {}
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 .set_authenticated(cookie_store.get('is_authenticated'))
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