From 845a50b3acb4c970292706b3d87301cf760713ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stevan=20Radakovi=C4=87?= Date: Tue, 2 Apr 2013 12:53:03 +0200 Subject: Yet another separator fix. --- rhodecode/model/repo.py | 56 ++++++++++++++++++++++++------------------ rhodecode/model/repos_group.py | 41 +++++++++++++++++++------------ 2 files changed, 57 insertions(+), 40 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) diff --git a/rhodecode/model/repos_group.py b/rhodecode/model/repos_group.py index c8a5639c..b739d588 100644 --- a/rhodecode/model/repos_group.py +++ b/rhodecode/model/repos_group.py @@ -43,6 +43,7 @@ log = logging.getLogger(__name__) class ReposGroupModel(BaseModel): cls = RepoGroup + URL_SEPARATOR = RepoGroup.url_sep() def __get_users_group(self, users_group): return self._get_instance(UsersGroup, users_group, @@ -142,8 +143,9 @@ class ReposGroupModel(BaseModel): group.name) shutil.move(rm_path, os.path.join(self.repos_path, _d)) - system_group_name = "%s-%s" % (group.group_name.rsplit("/",1)[1], - group.group_id) + system_group_name = "%s-%s" % ( + group.group_name.split(self.URL_SEPARATOR)[-1], + group.group_id) SystemCommand.delete_group(system_group_name) def create(self, group_name, group_description, parent=None, just_db=False): @@ -163,8 +165,9 @@ class ReposGroupModel(BaseModel): self.__create_group(new_repos_group.group_name) # Create corresponding system group. - system_group_name = "%s-%s" % (group_name.rsplit("/",1)[1], - new_repos_group.group_id) + system_group_name = "%s-%s" % ( + group_name.split(self.URL_SEPARATOR)[-1], + new_repos_group.group_id) SystemCommand.add_group(system_group_name) create_path = os.path.join(self.repos_path, group_name) os.chmod(create_path, 0775) @@ -281,10 +284,12 @@ class ReposGroupModel(BaseModel): self.__rename_group(old_path, new_path) - old_system_name = "%s-%s" % (old_path.rsplit("/",1)[1], - repos_group.group_id) - new_system_name = "%s-%s" % (new_path.rsplit("/",1)[1], - repos_group.group_id) + old_system_name = "%s-%s" % ( + old_path.split(self.URL_SEPARATOR)[-1], + repos_group.group_id) + new_system_name = "%s-%s" % ( + new_path.split(self.URL_SEPARATOR)[-1], + repos_group.group_id) SystemCommand.rename_group(old_system_name, new_system_name) return repos_group @@ -369,8 +374,9 @@ class ReposGroupModel(BaseModel): self.sa.add(obj) log.debug('Granted perm %s to %s on %s' % (perm, user, repos_group)) - system_group_name = "%s-%s" % (repos_group.group_name.rsplit("/",1)[1], - repos_group.group_id) + system_group_name = "%s-%s" % ( + repos_group.group_name.split(self.URL_SEPARATOR)[-1], + repos_group.group_id) group_path = os.path.join(self.repos_path, repos_group.group_name) if permission.permission_name in ["group.none", "group.read"]: @@ -406,8 +412,9 @@ class ReposGroupModel(BaseModel): self.sa.delete(obj) log.debug('Revoked perm on %s on %s' % (repos_group, user)) - system_group_name = "%s-%s" % (repos_group.group_name.rsplit("/",1)[1], - repos_group.group_id) + system_group_name = "%s-%s" % ( + repos_group.group_name.split(self.URL_SEPARATOR)[-1], + repos_group.group_id) SystemCommand.remove_user_from_group(system_group_name, user.username) def grant_users_group_permission(self, repos_group, group_name, perm): @@ -441,8 +448,9 @@ class ReposGroupModel(BaseModel): self.sa.add(obj) log.debug('Granted perm %s to %s on %s' % (perm, group_name, repos_group)) - system_group_name = "%s-%s" % (repos_group.group_name.rsplit("/",1)[1], - repos_group.group_id) + system_group_name = "%s-%s" % ( + repos_group.group_name.split(self.URL_SEPARATOR)[-1], + repos_group.group_id) for user in group_name.members: if permission.permission_name in ["group.none", "group.read"]: @@ -472,8 +480,9 @@ class ReposGroupModel(BaseModel): self.sa.delete(obj) log.debug('Revoked perm to %s on %s' % (repos_group, group_name)) - system_group_name = "%s-%s" % (repos_group.group_name.rsplit("/",1)[1], - repos_group.group_id) + system_group_name = "%s-%s" % ( + repos_group.group_name.split(self.URL_SEPARATOR)[-1], + repos_group.group_id) for user in group_name.members: SystemCommand.remove_user_from_group(system_group_name, user.username) -- cgit v1.2.3