# HG changeset patch # User Mads Kiilerich # Date 1604268265 -3600 # Node ID 87c2cd07166ae828072d24c85b351d67ecbabb6d # Parent 8f5bc94959dec30eecfb901f002b7817864033db lib: move get_all_user_repos to AuthUser diff -r 8f5bc94959de -r 87c2cd07166a kallithea/controllers/api/api.py --- 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() diff -r 8f5bc94959de -r 87c2cd07166a kallithea/lib/auth.py --- 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 diff -r 8f5bc94959de -r 87c2cd07166a kallithea/lib/auth_modules/__init__.py --- 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 diff -r 8f5bc94959de -r 87c2cd07166a kallithea/model/repo.py --- 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 diff -r 8f5bc94959de -r 87c2cd07166a kallithea/tests/api/api_base.py --- 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)