changeset 8734:87c2cd07166a

lib: move get_all_user_repos to AuthUser
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 01 Nov 2020 23:04:25 +0100
parents 8f5bc94959de
children 3f1e5ec89bfc
files kallithea/controllers/api/api.py kallithea/lib/auth.py kallithea/lib/auth_modules/__init__.py kallithea/model/repo.py kallithea/tests/api/api_base.py
diffstat 5 files changed, 13 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/api/api.py	Sun Nov 01 22:53:30 2020 +0100
+++ b/kallithea/controllers/api/api.py	Sun Nov 01 23:04:25 2020 +0100
@@ -1097,7 +1097,7 @@
             error:  null
         """
         if not HasPermissionAny('hg.admin')():
-            repos = RepoModel().get_all_user_repos(user=request.authuser.user_id)
+            repos = request.authuser.get_all_user_repos()
         else:
             repos = db.Repository.query()
 
--- a/kallithea/lib/auth.py	Sun Nov 01 22:53:30 2020 +0100
+++ b/kallithea/lib/auth.py	Sun Nov 01 23:04:25 2020 +0100
@@ -467,6 +467,16 @@
                 pass
         return _set or set(['0.0.0.0/0', '::/0'])
 
+    def get_all_user_repos(self):
+        """
+        Gets all repositories that user have at least read access
+        """
+        repos = [repo_name
+            for repo_name, perm in self.repository_permissions.items()
+            if perm in ['repository.read', 'repository.write', 'repository.admin']
+            ]
+        return db.Repository.query().filter(db.Repository.repo_name.in_(repos))
+
 
 #==============================================================================
 # CHECK DECORATORS
--- a/kallithea/lib/auth_modules/__init__.py	Sun Nov 01 22:53:30 2020 +0100
+++ b/kallithea/lib/auth_modules/__init__.py	Sun Nov 01 23:04:25 2020 +0100
@@ -22,7 +22,7 @@
 
 from kallithea.lib.auth import AuthUser
 from kallithea.lib.compat import hybrid_property
-from kallithea.lib.utils2 import asbool, PasswordGenerator
+from kallithea.lib.utils2 import PasswordGenerator, asbool
 from kallithea.model import db, meta, validators
 from kallithea.model.user import UserModel
 from kallithea.model.user_group import UserGroupModel
--- a/kallithea/model/repo.py	Sun Nov 01 22:53:30 2020 +0100
+++ b/kallithea/model/repo.py	Sun Nov 01 23:04:25 2020 +0100
@@ -89,20 +89,6 @@
             .filter(db.Repository.repo_name == repo_name)
         return repo.scalar()
 
-    def get_all_user_repos(self, user):
-        """
-        Gets all repositories that user have at least read access
-
-        :param user:
-        """
-        from kallithea.lib.auth import AuthUser
-        auth_user = AuthUser(dbuser=db.User.guess_instance(user))
-        repos = [repo_name
-            for repo_name, perm in auth_user.repository_permissions.items()
-            if perm in ['repository.read', 'repository.write', 'repository.admin']
-            ]
-        return db.Repository.query().filter(db.Repository.repo_name.in_(repos))
-
     @classmethod
     def _render_datatable(cls, tmpl, *args, **kwargs):
         from tg import app_globals, request
--- a/kallithea/tests/api/api_base.py	Sun Nov 01 22:53:30 2020 +0100
+++ b/kallithea/tests/api/api_base.py	Sun Nov 01 23:04:25 2020 +0100
@@ -688,7 +688,7 @@
 
         expected = jsonify([
             repo.get_api_data()
-            for repo in RepoModel().get_all_user_repos(self.TEST_USER_LOGIN)
+            for repo in AuthUser(dbuser=db.User.get_by_username(self.TEST_USER_LOGIN)).get_all_user_repos()
         ])
 
         self._compare_ok(id_, expected, given=response.body)