diff options
Diffstat (limited to 'rhodecode/model/repo.py')
-rw-r--r-- | rhodecode/model/repo.py | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/rhodecode/model/repo.py b/rhodecode/model/repo.py index 4c00219d..910c5d26 100644 --- a/rhodecode/model/repo.py +++ b/rhodecode/model/repo.py @@ -317,10 +317,12 @@ class RepoModel(BaseModel): self.sa.add(cur_repo) - old_system_name = "%s-%s" % (org_repo_name.rsplit("/",1)[1], - cur_repo.repo_id) - new_system_name = "%s-%s" % (new_name.rsplit("/",1)[1], - cur_repo.repo_id) + old_system_name = "%s-%s" % ( + org_repo_name.split(self.URL_SEPARATOR)[-1], + cur_repo.repo_id) + new_system_name = "%s-%s" % ( + new_name.split(self.URL_SEPARATOR)[-1], + cur_repo.repo_id) SystemCommand.rename_group(old_system_name, new_system_name) if org_repo_name != new_name: @@ -378,14 +380,6 @@ class RepoModel(BaseModel): self.sa.add(new_repo) - system_group_name = "%s-%s" % (new_repo.repo_name.rsplit("/",1)[1], - 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) - SystemCommand.change_ownership(new_repo.repo_name, - system_group_name) - def _create_default_perms(): # create default permission repo_to_perm = UserRepoToPerm() @@ -427,7 +421,7 @@ class RepoModel(BaseModel): _create_default_perms() if not just_db: - self.__create_repo(repo_name, repo_type, + self.__create_repo(repo_name, new_repo.repo_id, repo_type, repos_group, clone_uri) log_create_repository(new_repo.get_dict(), @@ -524,8 +518,9 @@ class RepoModel(BaseModel): self.sa.add(obj) log.debug('Granted perm %s to %s on %s' % (perm, user, repo)) - system_group_name = "%s-%s" % (repo.repo_name.rsplit("/",1)[1], - repo.repo_id) + system_group_name = "%s-%s" % ( + repo.repo_name.split(self.URL_SEPARATOR)[-1], + repo.repo_id) repo_path = os.path.join(self.repos_path, repo.repo_name) if permission.permission_name in ["group.none", "group.read"]: if user.username=="default": @@ -559,8 +554,9 @@ class RepoModel(BaseModel): self.sa.delete(obj) log.debug('Revoked perm on %s on %s' % (repo, user)) - system_group_name = "%s-%s" % (repo.repo_name.rsplit("/",1)[1], - repo.repo_id) + system_group_name = "%s-%s" % ( + repo.repo_name.split(self.URL_SEPARATOR)[-1], + repo.repo_id) SystemCommand.remove_user_from_group(system_group_name, user.username) def grant_users_group_permission(self, repo, group_name, perm): @@ -593,8 +589,9 @@ class RepoModel(BaseModel): self.sa.add(obj) log.debug('Granted perm %s to %s on %s' % (perm, group_name, repo)) - system_group_name = "%s-%s" % (repo.repo_name.rsplit("/",1)[1], - repo.repo_id) + system_group_name = "%s-%s" % ( + repo.repo_name.split(self.URL_SEPARATOR)[-1], + repo.repo_id) for user in group_name.members: if permission.permission_name in ["group.none", "group.read"]: SystemCommand.remove_user_from_group(system_group_name, @@ -622,8 +619,9 @@ class RepoModel(BaseModel): self.sa.delete(obj) log.debug('Revoked perm to %s on %s' % (repo, group_name)) - system_group_name = "%s-%s" % (repo.repo_name.rsplit("/",1)[1], - repo.repo_id) + system_group_name = "%s-%s" % ( + repo.repo_name.split(self.URL_SEPARATOR)[-1], + repo.repo_id) for user in group_name.members: SystemCommand.remove_user_from_group(system_group_name, user.username) @@ -644,7 +642,8 @@ class RepoModel(BaseModel): log.error(traceback.format_exc()) raise - def __create_repo(self, repo_name, alias, parent, clone_uri=False): + def __create_repo(self, repo_name, repo_id, alias, parent, + clone_uri=False): """ makes repository on filesystem. It's group aware means it'll create a repository within a group, and alter the paths accordingly of @@ -689,6 +688,14 @@ class RepoModel(BaseModel): else: raise Exception('Undefined alias %s' % alias) + system_group_name = "%s-%s" % (repo_name, repo_id) + SystemCommand.add_group(system_group_name) + os.chmod(repo_path, 0775) + SystemCommand.change_ownership("%s%s%s" % (new_parent_path, + self.URL_SEPARATOR, + repo_name), + system_group_name) + def __rename_repo(self, old, new): """ renames repository on filesystem @@ -736,6 +743,7 @@ class RepoModel(BaseModel): _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)[1], - repo.repo_id) + system_group_name = "%s-%s" % ( + repo.repo_name.split(self.URL_SEPARATOR)[-1], + repo.repo_id) SystemCommand.delete_group(system_group_name) |