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:
parent
ea9c1801d2
commit
0c173a12ac
@ -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,
|
||||
|
@ -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:
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user