1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-04-28 03:10:45 +00:00

use new get group repos api

This commit is contained in:
lian 2018-01-17 16:07:30 +08:00
parent ea9c1801d2
commit 0c173a12ac
4 changed files with 23 additions and 63 deletions

View File

@ -84,7 +84,6 @@ from seahub.utils.file_op import check_file_lock
from seahub.utils.timeutils import utc_to_local, datetime_to_isoformat_timestr
from seahub.views import is_registered_user, check_folder_permission, \
create_default_library, list_inner_pub_repos
from seahub.views.ajax import get_groups_by_user, get_group_repos
from seahub.views.file import get_file_view_path_and_perm, send_file_access_msg
if HAS_FILE_SEARCH:
from seahub_extra.search.views import search_keyword
@ -601,7 +600,6 @@ class Repos(APIView):
"head_commit_id": r.head_cmmt_id,
"version": r.version,
}
if r.repo_id in repos_with_admin_share_to:
repo['is_admin'] = True
@ -611,8 +609,13 @@ class Repos(APIView):
repos_json.append(repo)
if filter_by['group']:
groups = get_groups_by_user(request)
group_repos = get_group_repos(request, groups)
if is_org_context(request):
org_id = request.user.org.org_id
group_repos = seafile_api.get_org_group_repos_by_user(email,
org_id)
else:
group_repos = seafile_api.get_group_repos_by_user(email)
group_repos.sort(lambda x, y: cmp(y.last_modify, x.last_modify))
# Reduce memcache fetch ops.
@ -629,17 +632,18 @@ class Repos(APIView):
repo = {
"type": "grepo",
"id": r.id,
"owner": r.group.group_name,
"groupid": r.group.id,
"name": r.name,
"id": r.repo_id,
"name": r.repo_name,
"groupid": r.group_id,
"group_name": r.group_name,
"owner": r.group_name,
"mtime": r.last_modify,
"modifier_email": r.last_modifier,
"modifier_contact_email": contact_email_dict.get(r.last_modifier, ''),
"modifier_name": nickname_dict.get(r.last_modifier, ''),
"modifier_contact_email": contact_email_dict.get(r.last_modifier, ''),
"size": r.size,
"encrypted": r.encrypted,
"permission": check_permission(r.id, email),
"permission": r.permission,
"root": '',
"head_commit_id": r.head_cmmt_id,
"version": r.version,

View File

@ -316,10 +316,7 @@ def get_user_repos(username, org_id=None):
if org_id is None:
owned_repos = seafile_api.get_owned_repo_list(username)
shared_repos = seafile_api.get_share_in_repo_list(username, -1, -1)
groups_repos = []
for group in seaserv.get_personal_groups_by_user(username):
# TODO: use seafile_api.get_group_repos
groups_repos += seaserv.get_group_repos(group.id, username)
groups_repos = seafile_api.get_group_repos_by_user(username)
if CLOUD_MODE:
public_repos = []
else:
@ -333,12 +330,12 @@ def get_user_repos(username, org_id=None):
r.desc = r.repo_desc
r.last_modify = r.last_modified
else:
owned_repos = seafile_api.get_org_owned_repo_list(org_id, username)
shared_repos = seafile_api.get_org_share_in_repo_list(org_id, username,
-1, -1)
groups_repos = []
for group in seaserv.get_org_groups_by_user(org_id, username):
groups_repos += seafile_api.get_org_group_repos(org_id, group.id)
owned_repos = seafile_api.get_org_owned_repo_list(org_id,
username)
shared_repos = seafile_api.get_org_share_in_repo_list(org_id,
username, -1, -1)
groups_repos = seafile_api.get_org_group_repos_by_user(username,
org_id)
public_repos = seaserv.seafserv_threaded_rpc.list_org_inner_pub_repos(org_id)
for r in shared_repos + groups_repos + public_repos:

View File

@ -1044,49 +1044,6 @@ def space_and_traffic(request):
context_instance=RequestContext(request))
return HttpResponse(json.dumps({"html": html}), content_type=content_type)
def get_groups_by_user(request):
"""List user groups.
"""
username = request.user.username
if is_org_context(request):
org_id = request.user.org.org_id
return ccnet_api.get_org_groups_by_user(org_id, username)
else:
return seaserv.get_personal_groups_by_user(username)
def get_group_repos(request, groups):
"""Get repos shared to groups.
"""
all_group_repos = []
if is_org_context(request):
org_id = request.user.org.org_id
for group in groups:
org_group_repos = seafile_api.get_org_group_repos(org_id, group.id)
for repo in org_group_repos:
# Convert repo properties due to the different collumns in Repo
# and SharedRepo
repo.share_type = 'group'
repo.user = seafile_api.get_org_repo_owner(repo.repo_id)
repo.user_perm = check_folder_permission(request, repo.repo_id, '/')
repo.group = group
all_group_repos.append(repo)
else:
for group in groups:
group_repos = seafile_api.get_repos_by_group(group.id)
for repo in group_repos:
# Convert repo properties due to the different collumns in Repo
# and SharedRepo
repo.share_type = 'group'
repo.user = seafile_api.get_repo_owner(repo.repo_id)
repo.user_perm = check_folder_permission(request, repo.repo_id, '/')
repo.group = group
all_group_repos.append(repo)
return all_group_repos
def get_file_upload_url_ul(request, token):
"""Get file upload url in dir upload link.

View File

@ -33,6 +33,8 @@ class RepoTest(BaseTestCase):
self.assertIsNotNone(json_resp['root'])
self.assertIsNotNone(json_resp['type'])
self.assertIsNotNone(json_resp['file_count'])
self.assertIsNotNone(json_resp['groupid'])
self.assertIsNotNone(json_resp['group_name'])
def test_can_delete(self):
self.login_as(self.user)