1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 10:58:33 +00:00

optimize getting group repos

This commit is contained in:
lian
2017-11-06 16:31:47 +08:00
parent c88ff295c1
commit 50a6d0172f

View File

@@ -986,56 +986,42 @@ def get_groups_by_user(request):
username = request.user.username username = request.user.username
if is_org_context(request): if is_org_context(request):
org_id = request.user.org.org_id org_id = request.user.org.org_id
return seaserv.get_org_groups_by_user(org_id, username) return ccnet_api.get_org_groups_by_user(org_id, username)
else: else:
return seaserv.get_personal_groups_by_user(username) return ccnet_api.get_personal_groups_by_user(username)
def get_group_repos(request, groups): def get_group_repos(request, groups):
"""Get repos shared to groups. """Get repos shared to groups.
""" """
group_repos = []
all_group_repos = []
if is_org_context(request): if is_org_context(request):
org_id = request.user.org.org_id org_id = request.user.org.org_id
# For each group I joined... for group in groups:
for grp in groups: org_group_repos = seafile_api.get_org_group_repos(org_id, group.id)
# Get group repos, and for each group repos... for repo in org_group_repos:
for r_id in seafile_api.get_org_group_repoids(org_id, grp.id):
repo_owner = seafile_api.get_org_repo_owner(r_id)
# Convert repo properties due to the different collumns in Repo # Convert repo properties due to the different collumns in Repo
# and SharedRepo # and SharedRepo
r = get_repo(r_id) repo.share_type = 'group'
if not r: repo.user = seafile_api.get_org_repo_owner(repo.repo_id)
continue repo.user_perm = check_folder_permission(request, repo.repo_id, '/')
r.repo_id = r.id repo.group = group
r.repo_name = r.name
r.repo_desc = r.desc all_group_repos.append(repo)
r.last_modified = get_repo_last_modify(r)
r.share_type = 'group'
r.user = repo_owner
r.user_perm = check_folder_permission(request, r_id, '/')
r.group = grp
group_repos.append(r)
else: else:
# For each group I joined... for group in groups:
for grp in groups: group_repos = seafile_api.get_repos_by_group(group.id)
# Get group repos, and for each group repos... for repo in group_repos:
for r_id in seafile_api.get_group_repoids(grp.id):
repo_owner = seafile_api.get_repo_owner(r_id)
# Convert repo properties due to the different collumns in Repo # Convert repo properties due to the different collumns in Repo
# and SharedRepo # and SharedRepo
r = get_repo(r_id) repo.share_type = 'group'
if not r: repo.user = seafile_api.get_repo_owner(repo.repo_id)
continue repo.user_perm = check_folder_permission(request, repo.repo_id, '/')
r.repo_id = r.id repo.group = group
r.repo_name = r.name
r.repo_desc = r.desc all_group_repos.append(repo)
r.last_modified = get_repo_last_modify(r)
r.share_type = 'group' return all_group_repos
r.user = repo_owner
r.user_perm = check_folder_permission(request, r_id, '/')
r.group = grp
group_repos.append(r)
return group_repos
def get_file_upload_url_ul(request, token): def get_file_upload_url_ul(request, token):
"""Get file upload url in dir upload link. """Get file upload url in dir upload link.