pyramid: moved extraction of user into a seperate subscriber.
This commit is contained in:
parent
93de470b3f
commit
7304e9b076
3 changed files with 26 additions and 7 deletions
|
|
@ -403,7 +403,10 @@ def attach_context_attributes(context, request, user_id):
|
||||||
request.call_context = context
|
request.call_context = context
|
||||||
|
|
||||||
|
|
||||||
def get_auth_user(environ):
|
def get_auth_user(request):
|
||||||
|
environ = request.environ
|
||||||
|
session = request.session
|
||||||
|
|
||||||
ip_addr = get_ip_addr(environ)
|
ip_addr = get_ip_addr(environ)
|
||||||
# make sure that we update permissions each time we call controller
|
# make sure that we update permissions each time we call controller
|
||||||
_auth_token = (request.GET.get('auth_token', '') or
|
_auth_token = (request.GET.get('auth_token', '') or
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,25 @@ def set_user_lang(event):
|
||||||
event.request._LOCALE_ = user_lang
|
event.request._LOCALE_ = user_lang
|
||||||
|
|
||||||
|
|
||||||
|
def add_request_user_context(event):
|
||||||
|
"""
|
||||||
|
Adds auth user into request context
|
||||||
|
"""
|
||||||
|
request = event.request
|
||||||
|
|
||||||
|
if hasattr(request, 'vcs_call'):
|
||||||
|
# skip vcs calls
|
||||||
|
return
|
||||||
|
|
||||||
|
if hasattr(request, 'rpc_method'):
|
||||||
|
# skip api calls
|
||||||
|
return
|
||||||
|
|
||||||
|
auth_user = get_auth_user(request)
|
||||||
|
request.user = auth_user
|
||||||
|
request.environ['rc_auth_user'] = auth_user
|
||||||
|
|
||||||
|
|
||||||
def add_pylons_context(event):
|
def add_pylons_context(event):
|
||||||
request = event.request
|
request = event.request
|
||||||
|
|
||||||
|
|
@ -113,14 +132,9 @@ def add_pylons_context(event):
|
||||||
# skip api calls
|
# skip api calls
|
||||||
return
|
return
|
||||||
|
|
||||||
# Get the rhodecode auth user object and make it available.
|
|
||||||
auth_user = get_auth_user(environ)
|
|
||||||
request.user = auth_user
|
|
||||||
environ['rc_auth_user'] = auth_user
|
|
||||||
|
|
||||||
# Setup the pylons context object ('c')
|
# Setup the pylons context object ('c')
|
||||||
context = ContextObj()
|
context = ContextObj()
|
||||||
context.rhodecode_user = auth_user
|
context.rhodecode_user = request.user
|
||||||
attach_context_attributes(context, request, request.user.user_id)
|
attach_context_attributes(context, request, request.user.user_id)
|
||||||
pylons.tmpl_context._push_object(context)
|
pylons.tmpl_context._push_object(context)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,8 @@ def includeme(config):
|
||||||
'pyramid.events.NewRequest')
|
'pyramid.events.NewRequest')
|
||||||
config.add_subscriber('rhodecode.subscribers.add_localizer',
|
config.add_subscriber('rhodecode.subscribers.add_localizer',
|
||||||
'pyramid.events.NewRequest')
|
'pyramid.events.NewRequest')
|
||||||
|
config.add_subscriber('rhodecode.subscribers.add_request_user_context',
|
||||||
|
'pyramid.events.ContextFound')
|
||||||
config.add_subscriber('rhodecode.subscribers.add_pylons_context',
|
config.add_subscriber('rhodecode.subscribers.add_pylons_context',
|
||||||
'pyramid.events.ContextFound')
|
'pyramid.events.ContextFound')
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue