コード例 #1
0
    def grant_users_group_permission(self, repo, group_name, perm):
        """
        Grant permission for users group on given repository, or update
        existing one if found

        :param repo: Instance of Repository, repository_id, or repository name
        :param group_name: Instance of UserGroup, users_group_id,
            or users group name
        :param perm: Instance of Permission, or permission_name
        """
        repo = self.__get_repo(repo)
        group_name = self.__get_users_group(group_name)
        permission = self.__get_perm(perm)

        # check if we have that permission already
        obj = self.sa.query(UsersGroupRepoToPerm)\
            .filter(UsersGroupRepoToPerm.users_group == group_name)\
            .filter(UsersGroupRepoToPerm.repository == repo)\
            .scalar()

        if obj is None:
            # create new
            obj = UsersGroupRepoToPerm()

        obj.repository = repo
        obj.users_group = group_name
        obj.permission = permission
        self.sa.add(obj)
コード例 #2
0
ファイル: repo_permission.py プロジェクト: elfixit/rhodecode
 def update_users_group_permission(self, repository, users_group,
                                   permission):
     permission = Permission.get_by_key(permission)
     current = self.get_users_group_permission(repository, users_group)
     if current:
         if not current.permission is permission:
             current.permission = permission
     else:
         p = UsersGroupRepoToPerm()
         p.users_group = users_group
         p.repository = repository
         p.permission = permission
         self.sa.add(p)