From 0ad26a2c58828eb43be297231d415f18b9fcaede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stevan=20Radakovi=C4=87?= Date: Wed, 22 May 2013 21:52:08 +0200 Subject: Add ACL support for private repositories for git ssh protocol. --- rhodecode/model/repo.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/rhodecode/model/repo.py b/rhodecode/model/repo.py index f7b7b976..e03bb6b6 100644 --- a/rhodecode/model/repo.py +++ b/rhodecode/model/repo.py @@ -332,6 +332,12 @@ class RepoModel(BaseModel): SystemCommand.change_ownership(cur_repo.repo_name, new_system_name) + repo_path = os.path.join(self.repos_path, cur_repo.repo_name) + if not cur_repo.private: + os.chmod(repo_path, 02775) + else: + os.chmod(repo_path, 02770) + if org_repo_name != new_name: # rename repository self.__rename_repo(old=org_repo_name, new=new_name) @@ -715,7 +721,10 @@ class RepoModel(BaseModel): # Old value here was 0775. We need directory to be sgid, in order to # correctly work with git-shell. Value is calculated with values from # the python stat library. - os.chmod(repo_path, 02775) + if not repo.private: + os.chmod(repo_path, 02775) + else: + os.chmod(repo_path, 02770) SystemCommand.change_ownership("%s%s%s" % (new_parent_path, self.URL_SEPARATOR, repo_name), -- cgit v1.2.3