Ejemplo n.º 1
0
    def list_user_shared_items(self, request, repo_id, path):

        if is_org_context(request):
            # when calling seafile API to share authority related functions, change the uesrname to repo owner.
            repo_owner = seafile_api.get_org_repo_owner(repo_id)
            org_id = request.user.org.org_id
            if path == '/':
                share_items = seafile_api.list_org_repo_shared_to(org_id,
                        repo_owner, repo_id)
            else:
                share_items = seafile_api.get_org_shared_users_for_subdir(org_id,
                        repo_id, path, repo_owner)
        else:
            repo_owner = seafile_api.get_repo_owner(repo_id)
            if path == '/':
                share_items = seafile_api.list_repo_shared_to(repo_owner, repo_id)
            else:
                share_items = seafile_api.get_shared_users_for_subdir(repo_id,
                                                                      path, repo_owner)

        # change is_admin to True if user is repo admin.
        admin_users = ExtraSharePermission.objects.get_admin_users_by_repo(repo_id)
        ret = []
        for item in share_items:
            ret.append({
                "share_type": "user",
                "user_info": {
                    "name": item.user,
                    "nickname": email2nickname(item.user),
                },
                "permission": item.perm,
                "is_admin": item.user in admin_users
            })
        return ret
Ejemplo n.º 2
0
    def list_user_shared_items(self, request, repo_id, path):
        username = request.user.username

        if is_org_context(request):
            org_id = request.user.org.org_id
            if path == '/':
                share_items = seafile_api.list_org_repo_shared_to(org_id,
                        username, repo_id)
            else:
                share_items = seafile_api.get_org_shared_users_for_subdir(org_id,
                        repo_id, path, username)
        else:
            if path == '/':
                share_items = seafile_api.list_repo_shared_to(username, repo_id)
            else:
                share_items = seafile_api.get_shared_users_for_subdir(repo_id,
                                                                      path, username)
        ret = []
        for item in share_items:
            ret.append({
                "share_type": "user",
                "user_info": {
                    "name": item.user,
                    "nickname": email2nickname(item.user),
                },
                "permission": item.perm,
            })
        return ret
Ejemplo n.º 3
0
def has_shared_to_user(repo_id, path, username, org_id=None):
    if is_valid_org_id(org_id):
        # when calling seafile API to share authority related functions, change the uesrname to repo owner.
        repo_owner = seafile_api.get_org_repo_owner(repo_id)
        if path == '/':
            share_items = seafile_api.list_org_repo_shared_to(
                org_id, repo_owner, repo_id)
        else:
            share_items = seafile_api.get_org_shared_users_for_subdir(
                org_id, repo_id, path, repo_owner)
    else:
        repo_owner = seafile_api.get_repo_owner(repo_id)
        if path == '/':
            share_items = seafile_api.list_repo_shared_to(repo_owner, repo_id)
        else:
            share_items = seafile_api.get_shared_users_for_subdir(
                repo_id, path, repo_owner)
    return username in [item.user for item in share_items]
Ejemplo n.º 4
0
Archivo: rpc.py Proyecto: haiwen/seahub
 def get_shared_users_by_repo_path(self, repo_id, repo_owner, path='/',
                                   org_id=None):
     """
     Get user list this repo/folder is shared to.
     Return: a list of SharedUser objects (lib/repo.vala)
     """
     if is_valid_org_id(org_id):
         if path == '/':
             return seafile_api.list_org_repo_shared_to(
                 org_id, repo_owner, repo_id)
         else:
             return seafile_api.get_org_shared_users_for_subdir(
                 org_id, repo_id, path, repo_owner)
     else:
         if path == '/':
             return seafile_api.list_repo_shared_to(repo_owner, repo_id)
         else:
             return seafile_api.get_shared_users_for_subdir(
                 repo_id, path, repo_owner)
Ejemplo n.º 5
0
def has_shared_to_user(repo_id, path, username, org_id=None):
    if is_valid_org_id(org_id):
        # when calling seafile API to share authority related functions, change the uesrname to repo owner.
        repo_owner = seafile_api.get_org_repo_owner(repo_id)
        if path == '/':
            share_items = seafile_api.list_org_repo_shared_to(org_id,
                                                              repo_owner,
                                                              repo_id)
        else:
            share_items = seafile_api.get_org_shared_users_for_subdir(org_id,
                                                                      repo_id,
                                                                      path,
                                                                      repo_owner)
    else:
        repo_owner = seafile_api.get_repo_owner(repo_id)
        if path == '/':
            share_items = seafile_api.list_repo_shared_to(repo_owner, repo_id)
        else:
            share_items = seafile_api.get_shared_users_for_subdir(repo_id,
                                                                  path, repo_owner)
    return username in [item.user for item in share_items]
Ejemplo n.º 6
0
 def get_shared_users_by_repo_path(self,
                                   repo_id,
                                   repo_owner,
                                   path='/',
                                   org_id=None):
     """
     Get user list this repo/folder is shared to.
     Return: a list of SharedUser objects (lib/repo.vala)
     """
     if is_valid_org_id(org_id):
         if path == '/':
             return seafile_api.list_org_repo_shared_to(
                 org_id, repo_owner, repo_id)
         else:
             return seafile_api.get_org_shared_users_for_subdir(
                 org_id, repo_id, path, repo_owner)
     else:
         if path == '/':
             return seafile_api.list_repo_shared_to(repo_owner, repo_id)
         else:
             return seafile_api.get_shared_users_for_subdir(
                 repo_id, path, repo_owner)