# HG changeset patch # User Søren Løvborg # Date 2017-02-27 21:28:12 # Node ID 62e9be5eb783e0d12eeb5e6a65182dba63fe53a3 # Parent 10f16cf8289e2e036380ee5bb98945b8e71cc80c cleanup: do Session.add directly inside _create_default_perms Let the various _create_default_perms functions add the created object to the SQLAlchemy database session, instead of having the caller do it. This is in accordance with the Kallithea contribution guidelines: When creating an object using a factory function (like create_repo), the returned object has already (by convention) been added to the session, and should not be added again. diff --git a/kallithea/lib/db_manage.py b/kallithea/lib/db_manage.py --- a/kallithea/lib/db_manage.py +++ b/kallithea/lib/db_manage.py @@ -335,8 +335,7 @@ class DbManage(object): if default is None: log.debug('missing default permission for group %s adding', g) - perm_obj = RepoGroupModel()._create_default_perms(g) - self.sa.add(perm_obj) + RepoGroupModel()._create_default_perms(g) def reset_permissions(self, username): """ diff --git a/kallithea/lib/utils.py b/kallithea/lib/utils.py --- a/kallithea/lib/utils.py +++ b/kallithea/lib/utils.py @@ -448,8 +448,7 @@ def map_groups(path): group.group_description = desc group.owner = owner sa.add(group) - perm_obj = rgm._create_default_perms(group) - sa.add(perm_obj) + rgm._create_default_perms(group) sa.flush() parent = group diff --git a/kallithea/model/repo.py b/kallithea/model/repo.py --- a/kallithea/model/repo.py +++ b/kallithea/model/repo.py @@ -74,6 +74,7 @@ class RepoModel(BaseModel): repo_to_perm.repository = repository repo_to_perm.user_id = def_user.user_id + self.sa.add(repo_to_perm) return repo_to_perm @@ -427,8 +428,7 @@ class RepoModel(BaseModel): UserGroupRepoToPerm.create(perm.users_group, new_repo, perm_obj) else: - perm_obj = self._create_default_perms(new_repo, private) - self.sa.add(perm_obj) + self._create_default_perms(new_repo, private) # now automatically start following this repository as owner ScmModel(self.sa).toggle_following_repo(new_repo.repo_id, diff --git a/kallithea/model/repo_group.py b/kallithea/model/repo_group.py --- a/kallithea/model/repo_group.py +++ b/kallithea/model/repo_group.py @@ -66,6 +66,7 @@ class RepoGroupModel(BaseModel): repo_group_to_perm.group = new_group repo_group_to_perm.user_id = def_user.user_id + self.sa.add(repo_group_to_perm) return repo_group_to_perm def _create_group(self, group_name): @@ -169,8 +170,7 @@ class RepoGroupModel(BaseModel): for perm in group_perms: UserGroupRepoGroupToPerm.create(perm.users_group, new_repo_group, perm.permission) else: - perm_obj = self._create_default_perms(new_repo_group) - self.sa.add(perm_obj) + self._create_default_perms(new_repo_group) if not just_db: # we need to flush here, in order to check if database won't diff --git a/kallithea/model/user_group.py b/kallithea/model/user_group.py --- a/kallithea/model/user_group.py +++ b/kallithea/model/user_group.py @@ -53,6 +53,7 @@ class UserGroupModel(BaseModel): user_group_to_perm.user_group = user_group user_group_to_perm.user_id = def_user.user_id + self.sa.add(user_group_to_perm) return user_group_to_perm def _update_permissions(self, user_group, perms_new=None, @@ -108,8 +109,7 @@ class UserGroupModel(BaseModel): if group_data: new_user_group.group_data = group_data self.sa.add(new_user_group) - perm_obj = self._create_default_perms(new_user_group) - self.sa.add(perm_obj) + self._create_default_perms(new_user_group) self.grant_user_permission(user_group=new_user_group, user=owner, perm='usergroup.admin')