aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/repo.py
diff options
context:
space:
mode:
Diffstat (limited to 'rhodecode/model/repo.py')
-rw-r--r--rhodecode/model/repo.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/rhodecode/model/repo.py b/rhodecode/model/repo.py
index 79d68e9f..482b1df4 100644
--- a/rhodecode/model/repo.py
+++ b/rhodecode/model/repo.py
@@ -28,6 +28,7 @@ import shutil
import logging
import traceback
from datetime import datetime
+from grp import getgrnam
from rhodecode.lib.vcs.backends import get_backend
from rhodecode.lib.compat import json
@@ -316,6 +317,12 @@ class RepoModel(BaseModel):
self.sa.add(cur_repo)
+ old_system_name = "%s-%s" % (org_repo_name.rsplit("/",1)[0],
+ cur_repo.repo_id)
+ new_system_name = "%s-%s" % (new_name.rsplit("/",1)[0],
+ cur_repo.repo_id)
+ SystemCommand.rename_group(old_system_name, new_system_name)
+
if org_repo_name != new_name:
# rename repository
self.__rename_repo(old=org_repo_name, new=new_name)
@@ -371,6 +378,13 @@ class RepoModel(BaseModel):
self.sa.add(new_repo)
+ system_group_name = "%s-%s" % (new_repo.repo_name.rsplit("/",1)[0],
+ new_repo.repo_id)
+ SystemCommand.add_group(system_group_name)
+ create_path = os.path.join(self.repos_path, new_repo.repo_name)
+ os.chmod(create_path, 0775)
+ os.chown(create_path, -1, getgrnam(system_group_name).gr_gid)
+
def _create_default_perms():
# create default permission
repo_to_perm = UserRepoToPerm()
@@ -720,3 +734,7 @@ class RepoModel(BaseModel):
args = repo.group.full_path_splitted + [_d]
_d = os.path.join(*args)
shutil.move(rm_path, os.path.join(self.repos_path, _d))
+
+ system_group_name = "%s-%s" % (repo.repo_name.rsplit("/",1)[0],
+ repo.repo_id)
+ SystemCommand.delete_group(system_group_name)