diff --git a/rhodecode/lib/base.py b/rhodecode/lib/base.py --- a/rhodecode/lib/base.py +++ b/rhodecode/lib/base.py @@ -8,9 +8,10 @@ from pylons import config, tmpl_context from pylons.controllers import WSGIController from pylons.controllers.util import redirect from pylons.templating import render_mako as render +from paste.deploy.converters import asbool from rhodecode import __version__ -from rhodecode.lib.auth import AuthUser +from rhodecode.lib.auth import AuthUser, get_container_username from rhodecode.lib.utils import get_repo_slug from rhodecode.model import meta from rhodecode.model.scm import ScmModel @@ -44,8 +45,15 @@ class BaseController(WSGIController): # putting this here makes sure that we update permissions each time api_key = request.GET.get('api_key') user_id = getattr(session.get('rhodecode_user'), 'user_id', None) - self.rhodecode_user = c.rhodecode_user = AuthUser(user_id, api_key) - self.rhodecode_user.set_authenticated( + if asbool(config.get('container_auth_enabled', False)): + username = get_container_username(environ) + else: + username = None + + self.rhodecode_user = c.rhodecode_user = AuthUser(user_id, api_key, username) + if not self.rhodecode_user.is_authenticated and \ + self.rhodecode_user.user_id is not None: + self.rhodecode_user.set_authenticated( getattr(session.get('rhodecode_user'), 'is_authenticated', False)) session['rhodecode_user'] = self.rhodecode_user