diff options
Diffstat (limited to 'rhodecode/model/repo.py')
-rw-r--r-- | rhodecode/model/repo.py | 18 |
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) |