changeset 7484:e4af9e2deb83

auth: let AuthUser fetch default user on demand
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 26 Dec 2018 02:18:59 +0100
parents 2e3e1dacdbb7
children c6ce891312ef
files kallithea/lib/auth.py
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/auth.py	Wed Dec 26 02:11:55 2018 +0100
+++ b/kallithea/lib/auth.py	Wed Dec 26 02:18:59 2018 +0100
@@ -482,9 +482,6 @@
         self.is_external_auth = is_external_auth
         self.authenticating_api_key = authenticating_api_key
 
-        user_model = UserModel()
-        self._default_user = User.get_default_user(cache=True)
-
         # These attributes will be overridden by fill_data, below, unless the
         # requested user cannot be found and the default anonymous user is
         # not enabled.
@@ -500,7 +497,7 @@
         # Look up database user, if necessary.
         if user_id is not None:
             log.debug('Auth User lookup by USER ID %s', user_id)
-            dbuser = user_model.get(user_id)
+            dbuser = UserModel().get(user_id)
         else:
             # Note: dbuser is allowed to be None.
             log.debug('Auth User lookup by database user %s', dbuser)
@@ -508,10 +505,14 @@
         is_user_loaded = self._fill_data(dbuser)
 
         # If user cannot be found, try falling back to anonymous.
-        if not is_user_loaded:
-            is_user_loaded = self._fill_data(self._default_user)
+        if is_user_loaded:
+            assert dbuser is not None
+            self.is_default_user = dbuser.is_default_user
+        else:
+            default_user = User.get_default_user(cache=True)
+            is_user_loaded = self._fill_data(default_user)
+            self.is_default_user = is_user_loaded
 
-        self.is_default_user = (self.user_id == self._default_user.user_id)
         self.is_anonymous = not is_user_loaded or self.is_default_user
 
         if not self.username: