changeset 7483:2e3e1dacdbb7

auth: drop confusing and layering-violating User.AuthUser property Keep it simple and just explicitly create an AuthUser if "needed". That can perhaps be simplified further later on.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 26 Dec 2018 02:11:55 +0100
parents c9d859a89a88
children e4af9e2deb83
files kallithea/controllers/admin/my_account.py kallithea/controllers/admin/permissions.py kallithea/controllers/login.py kallithea/lib/auth_modules/__init__.py kallithea/model/db.py
diffstat 5 files changed, 7 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/admin/my_account.py	Wed Dec 26 01:54:23 2018 +0100
+++ b/kallithea/controllers/admin/my_account.py	Wed Dec 26 02:11:55 2018 +0100
@@ -89,7 +89,7 @@
         self.__load_data()
         c.perm_user = AuthUser(user_id=request.authuser.user_id)
         managed_fields = auth_modules.get_managed_fields(c.user)
-        def_user_perms = User.get_default_user().AuthUser.permissions['global']
+        def_user_perms = AuthUser(dbuser=User.get_default_user()).permissions['global']
         if 'hg.register.none' in def_user_perms:
             managed_fields.extend(['username', 'firstname', 'lastname', 'email'])
 
--- a/kallithea/controllers/admin/permissions.py	Wed Dec 26 01:54:23 2018 +0100
+++ b/kallithea/controllers/admin/permissions.py	Wed Dec 26 02:11:55 2018 +0100
@@ -37,7 +37,7 @@
 
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator
+from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator, AuthUser
 from kallithea.lib.base import BaseController, render
 from kallithea.model.forms import DefaultPermissionsForm
 from kallithea.model.permission import PermissionModel
@@ -193,5 +193,5 @@
     def permission_perms(self):
         c.active = 'perms'
         c.user = User.get_default_user()
-        c.perm_user = c.user.AuthUser
+        c.perm_user = AuthUser(dbuser=c.user)
         return render('admin/permissions/permissions.html')
--- a/kallithea/controllers/login.py	Wed Dec 26 01:54:23 2018 +0100
+++ b/kallithea/controllers/login.py	Wed Dec 26 02:11:55 2018 +0100
@@ -117,8 +117,8 @@
     @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate',
                                'hg.register.manual_activate')
     def register(self):
-        c.auto_active = 'hg.register.auto_activate' in User.get_default_user() \
-            .AuthUser.permissions['global']
+        def_user_perms = AuthUser(dbuser=User.get_default_user()).permissions['global']
+        c.auto_active = 'hg.register.auto_activate' in def_user_perms
 
         settings = Setting.get_app_settings()
         captcha_private_key = settings.get('captcha_private_key')
--- a/kallithea/lib/auth_modules/__init__.py	Wed Dec 26 01:54:23 2018 +0100
+++ b/kallithea/lib/auth_modules/__init__.py	Wed Dec 26 02:11:55 2018 +0100
@@ -21,7 +21,7 @@
 
 from kallithea.lib.utils2 import str2bool
 from kallithea.lib.compat import formatted_json, hybrid_property
-from kallithea.lib.auth import PasswordGenerator
+from kallithea.lib.auth import PasswordGenerator, AuthUser
 from kallithea.model.user import UserModel
 from kallithea.model.db import Setting, User
 from kallithea.model.meta import Session
@@ -242,7 +242,7 @@
             userobj, username, passwd, settings, **kwargs)
         if user_data is not None:
             if userobj is None: # external authentication of unknown user that will be created soon
-                def_user_perms = User.get_default_user().AuthUser.permissions['global']
+                def_user_perms = AuthUser(dbuser=User.get_default_user()).permissions['global']
                 active = 'hg.extern_activate.auto' in def_user_perms
             else:
                 active = userobj.active
--- a/kallithea/model/db.py	Wed Dec 26 01:54:23 2018 +0100
+++ b/kallithea/model/db.py	Wed Dec 26 02:11:55 2018 +0100
@@ -525,14 +525,6 @@
     def is_default_user(self):
         return self.username == User.DEFAULT_USER
 
-    @property
-    def AuthUser(self):
-        """
-        Returns instance of AuthUser for this user
-        """
-        from kallithea.lib.auth import AuthUser
-        return AuthUser(dbuser=self)
-
     @hybrid_property
     def user_data(self):
         if not self._user_data: