Fix cookie auth to work with oauth token auth. Make sure user loading is truly deferred to save DB connections.
This commit is contained in:
parent
e759066ae0
commit
5bb4008880
6 changed files with 65 additions and 26 deletions
|
@ -111,11 +111,8 @@ class User(ApiResource):
|
|||
@nickname('getLoggedInUser')
|
||||
def get(self):
|
||||
""" Get user information for the authenticated user. """
|
||||
if get_authenticated_user() is None:
|
||||
return {'anonymous': True}
|
||||
|
||||
user = get_authenticated_user()
|
||||
if not user or user.organization:
|
||||
if user is None or user.organization:
|
||||
return {'anonymous': True}
|
||||
|
||||
return user_view(user)
|
||||
|
|
|
@ -12,7 +12,7 @@ from data import model
|
|||
from data.queue import dockerfile_build_queue
|
||||
from app import app, login_manager
|
||||
from auth.permissions import QuayDeferredPermissionUser
|
||||
from api.discovery import swagger_route_data
|
||||
from endpoints.api.discovery import swagger_route_data
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -35,9 +35,10 @@ def truthy_param(param):
|
|||
|
||||
@login_manager.user_loader
|
||||
def load_user(username):
|
||||
logger.debug('Loading user: %s' % username)
|
||||
logger.debug('User loader loading deferred user: %s' % username)
|
||||
return _LoginWrappedDBUser(username)
|
||||
|
||||
|
||||
class _LoginWrappedDBUser(UserMixin):
|
||||
def __init__(self, db_username, db_user=None):
|
||||
|
||||
|
|
Reference in a new issue