# HG changeset patch # User Mads Kiilerich # Date 1586652187 -7200 # Node ID 0456028c4ffef38dbc23d78e2aa4a6fe8928ba64 # Parent 2045d30919e6ed7ed0b35aab9e30f7b491f64d5a db: introduce kallithea.DEFAULT_USER_ID to avoid repeated get_default_user() diff -r 2045d30919e6 -r 0456028c4ffe kallithea/config/app_cfg.py --- a/kallithea/config/app_cfg.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/config/app_cfg.py Sun Apr 12 02:43:07 2020 +0200 @@ -42,6 +42,7 @@ from kallithea.lib.middleware.wrapper import RequestWrapper from kallithea.lib.utils import check_git_version, load_rcextensions, set_app_settings, set_indexer_config, set_vcs_config from kallithea.lib.utils2 import str2bool +from kallithea.model import db log = logging.getLogger(__name__) @@ -157,6 +158,8 @@ sys.exit(1) # store some globals into kallithea + kallithea.DEFAULT_USER_ID = db.User.get_default_user().user_id + if str2bool(config.get('use_celery')): kallithea.CELERY_APP = celerypylons.make_app() kallithea.CONFIG = config diff -r 2045d30919e6 -r 0456028c4ffe kallithea/controllers/admin/repos.py --- a/kallithea/controllers/admin/repos.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/controllers/admin/repos.py Sun Apr 12 02:43:07 2020 +0200 @@ -45,7 +45,7 @@ from kallithea.lib.utils import action_logger from kallithea.lib.utils2 import safe_int from kallithea.lib.vcs import RepositoryError -from kallithea.model.db import RepoGroup, Repository, RepositoryField, Setting, User, UserFollowing +from kallithea.model.db import RepoGroup, Repository, RepositoryField, Setting, UserFollowing from kallithea.model.forms import RepoFieldForm, RepoForm, RepoPermsForm from kallithea.model.meta import Session from kallithea.model.repo import RepoModel @@ -405,7 +405,7 @@ @HasRepoPermissionLevelDecorator('admin') def edit_advanced(self, repo_name): c.repo_info = self._load_repo() - c.default_user_id = User.get_default_user().user_id + c.default_user_id = kallithea.DEFAULT_USER_ID c.in_public_journal = UserFollowing.query() \ .filter(UserFollowing.user_id == c.default_user_id) \ .filter(UserFollowing.follows_repository == c.repo_info).scalar() @@ -442,7 +442,7 @@ try: repo_id = Repository.get_by_repo_name(repo_name).repo_id - user_id = User.get_default_user().user_id + user_id = kallithea.DEFAULT_USER_ID self.scm_model.toggle_following_repo(repo_id, user_id) h.flash(_('Updated repository visibility in public journal'), category='success') diff -r 2045d30919e6 -r 0456028c4ffe kallithea/controllers/admin/users.py --- a/kallithea/controllers/admin/users.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/controllers/admin/users.py Sun Apr 12 02:43:07 2020 +0200 @@ -36,6 +36,7 @@ from tg.i18n import ugettext as _ from webob.exc import HTTPFound, HTTPNotFound +import kallithea from kallithea.config.routing import url from kallithea.lib import auth_modules from kallithea.lib import helpers as h @@ -387,7 +388,7 @@ .filter(UserIpMap.user == c.user).all() c.default_user_ip_map = UserIpMap.query() \ - .filter(UserIpMap.user == User.get_default_user()).all() + .filter(UserIpMap.user_id == kallithea.DEFAULT_USER_ID).all() defaults = c.user.get_dict() return htmlfill.render( diff -r 2045d30919e6 -r 0456028c4ffe kallithea/controllers/forks.py --- a/kallithea/controllers/forks.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/controllers/forks.py Sun Apr 12 02:43:07 2020 +0200 @@ -35,13 +35,14 @@ from tg.i18n import ugettext as _ from webob.exc import HTTPFound +import kallithea import kallithea.lib.helpers as h from kallithea.config.routing import url from kallithea.lib.auth import HasPermissionAny, HasPermissionAnyDecorator, HasRepoPermissionLevel, HasRepoPermissionLevelDecorator, LoginRequired from kallithea.lib.base import BaseRepoController, render from kallithea.lib.page import Page from kallithea.lib.utils2 import safe_int -from kallithea.model.db import Repository, Ui, User, UserFollowing +from kallithea.model.db import Repository, Ui, UserFollowing from kallithea.model.forms import RepoForkForm from kallithea.model.repo import RepoModel from kallithea.model.scm import AvailableRepoGroupChoices, ScmModel @@ -76,7 +77,7 @@ h.not_mapped_error(c.repo_name) raise HTTPFound(location=url('repos')) - c.default_user_id = User.get_default_user().user_id + c.default_user_id = kallithea.DEFAULT_USER_ID c.in_public_journal = UserFollowing.query() \ .filter(UserFollowing.user_id == c.default_user_id) \ .filter(UserFollowing.follows_repository == c.repo_info).scalar() diff -r 2045d30919e6 -r 0456028c4ffe kallithea/lib/auth.py --- a/kallithea/lib/auth.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/lib/auth.py Sun Apr 12 02:43:07 2020 +0200 @@ -39,11 +39,12 @@ from tg.i18n import ugettext as _ from webob.exc import HTTPForbidden, HTTPFound +import kallithea from kallithea.config.routing import url from kallithea.lib.utils import get_repo_group_slug, get_repo_slug, get_user_group_slug from kallithea.lib.utils2 import ascii_bytes, ascii_str, safe_bytes from kallithea.lib.vcs.utils.lazy import LazyProperty -from kallithea.model.db import (Permission, User, UserApiKeys, UserGroup, UserGroupMember, UserGroupRepoGroupToPerm, UserGroupRepoToPerm, UserGroupToPerm, +from kallithea.model.db import (Permission, UserApiKeys, UserGroup, UserGroupMember, UserGroupRepoGroupToPerm, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm, UserIpMap, UserToPerm) from kallithea.model.meta import Session from kallithea.model.user import UserModel @@ -138,12 +139,9 @@ #====================================================================== # fetch default permissions #====================================================================== - default_user = User.get_by_username('default') - default_user_id = default_user.user_id - - default_repo_perms = Permission.get_default_perms(default_user_id) - default_repo_groups_perms = Permission.get_default_group_perms(default_user_id) - default_user_group_perms = Permission.get_default_user_group_perms(default_user_id) + default_repo_perms = Permission.get_default_perms(kallithea.DEFAULT_USER_ID) + default_repo_groups_perms = Permission.get_default_group_perms(kallithea.DEFAULT_USER_ID) + default_user_group_perms = Permission.get_default_user_group_perms(kallithea.DEFAULT_USER_ID) if user_is_admin: #================================================================== @@ -178,7 +176,7 @@ # default global permissions taken from the default user default_global_perms = UserToPerm.query() \ - .filter(UserToPerm.user_id == default_user_id) \ + .filter(UserToPerm.user_id == kallithea.DEFAULT_USER_ID) \ .options(joinedload(UserToPerm.permission)) for perm in default_global_perms: @@ -544,8 +542,7 @@ def get_allowed_ips(cls, user_id): _set = set() - default_ips = UserIpMap.query().filter(UserIpMap.user_id == - User.get_default_user().user_id) + default_ips = UserIpMap.query().filter(UserIpMap.user_id == kallithea.DEFAULT_USER_ID) for ip in default_ips: try: _set.add(ip.ip_addr) diff -r 2045d30919e6 -r 0456028c4ffe kallithea/tests/conftest.py --- a/kallithea/tests/conftest.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/tests/conftest.py Sun Apr 12 02:43:07 2020 +0200 @@ -145,7 +145,7 @@ user_model = UserModel() user_ids = [] - user_ids.append(User.get_default_user().user_id) + user_ids.append(kallithea.DEFAULT_USER_ID) user_ids.append(User.get_by_username(TEST_USER_REGULAR_LOGIN).user_id) for user_id in user_ids: diff -r 2045d30919e6 -r 0456028c4ffe kallithea/tests/functional/test_admin_permissions.py --- a/kallithea/tests/functional/test_admin_permissions.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/tests/functional/test_admin_permissions.py Sun Apr 12 02:43:07 2020 +0200 @@ -1,3 +1,4 @@ +import kallithea from kallithea.model.db import User, UserIpMap from kallithea.tests import base @@ -17,7 +18,7 @@ def test_add_delete_ips(self, auto_clear_ip_permissions): self.log_user() - default_user_id = User.get_default_user().user_id + default_user_id = kallithea.DEFAULT_USER_ID # Add IP and verify it is shown in UI and both gives access and rejects diff -r 2045d30919e6 -r 0456028c4ffe kallithea/tests/functional/test_admin_users.py --- a/kallithea/tests/functional/test_admin_users.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/tests/functional/test_admin_users.py Sun Apr 12 02:43:07 2020 +0200 @@ -17,6 +17,7 @@ from tg.util.webtest import test_context from webob.exc import HTTPNotFound +import kallithea from kallithea.controllers.admin.users import UsersController from kallithea.lib import helpers as h from kallithea.lib.auth import check_password @@ -578,7 +579,7 @@ assert u._get_user_or_raise_if_default(user.user_id) == user # the default user should raise with pytest.raises(HTTPNotFound): - u._get_user_or_raise_if_default(User.get_default_user().user_id) + u._get_user_or_raise_if_default(kallithea.DEFAULT_USER_ID) class TestAdminUsersControllerForDefaultUser(base.TestController): diff -r 2045d30919e6 -r 0456028c4ffe kallithea/tests/models/test_user_permissions_on_repo_groups.py --- a/kallithea/tests/models/test_user_permissions_on_repo_groups.py Sat Apr 11 18:53:10 2020 +0200 +++ b/kallithea/tests/models/test_user_permissions_on_repo_groups.py Sun Apr 12 02:43:07 2020 +0200 @@ -1,6 +1,7 @@ import functools -from kallithea.model.db import RepoGroup, Repository, User +import kallithea +from kallithea.model.db import RepoGroup, Repository from kallithea.model.meta import Session from kallithea.model.repo_group import RepoGroupModel from kallithea.tests.models.common import _check_expected_count, _create_project_tree, _destroy_project_tree, _get_perms, check_tree_perms, expected_count @@ -19,7 +20,7 @@ if not user_id: user_id = test_u1_id permissions_setup_func(group_name, perm, recursive, - user_id=User.get_default_user().user_id) + user_id=kallithea.DEFAULT_USER_ID) repo_group = RepoGroup.get_by_group_name(group_name=group_name) if not repo_group: @@ -116,7 +117,7 @@ # other repos and groups should have this permission now set ! recursive = 'all' group = 'g0' - default_user_id = User.get_default_user().user_id + default_user_id = kallithea.DEFAULT_USER_ID permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id) @@ -196,7 +197,7 @@ recursive = 'repos' group = 'g0/g0_1' perm = 'group.none' - default_user_id = User.get_default_user().user_id + default_user_id = kallithea.DEFAULT_USER_ID permissions_setup_func(group, perm, recursive=recursive, user_id=default_user_id) @@ -254,7 +255,7 @@ # remain intact as we use groups only mode ! recursive = 'groups' group = 'g0/g0_1' - default_user_id = User.get_default_user().user_id + default_user_id = kallithea.DEFAULT_USER_ID permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id)