Mercurial > kallithea
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: