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