changeset 6521:62e9be5eb783

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.
author Søren Løvborg <sorenl@unity3d.com>
date Mon, 27 Feb 2017 21:28:12 +0100
parents 10f16cf8289e
children 6edba875451d
files kallithea/lib/db_manage.py kallithea/lib/utils.py kallithea/model/repo.py kallithea/model/repo_group.py kallithea/model/user_group.py
diffstat 5 files changed, 8 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/db_manage.py	Mon Feb 27 19:47:54 2017 +0100
+++ b/kallithea/lib/db_manage.py	Mon Feb 27 21:28:12 2017 +0100
@@ -335,8 +335,7 @@
 
             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):
         """
--- a/kallithea/lib/utils.py	Mon Feb 27 19:47:54 2017 +0100
+++ b/kallithea/lib/utils.py	Mon Feb 27 21:28:12 2017 +0100
@@ -448,8 +448,7 @@
             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
--- a/kallithea/model/repo.py	Mon Feb 27 19:47:54 2017 +0100
+++ b/kallithea/model/repo.py	Mon Feb 27 21:28:12 2017 +0100
@@ -74,6 +74,7 @@
 
         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 @@
                     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,
--- a/kallithea/model/repo_group.py	Mon Feb 27 19:47:54 2017 +0100
+++ b/kallithea/model/repo_group.py	Mon Feb 27 21:28:12 2017 +0100
@@ -66,6 +66,7 @@
 
         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 @@
                 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
--- a/kallithea/model/user_group.py	Mon Feb 27 19:47:54 2017 +0100
+++ b/kallithea/model/user_group.py	Mon Feb 27 21:28:12 2017 +0100
@@ -53,6 +53,7 @@
 
         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 @@
             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')