diff --git a/api2/views.py b/api2/views.py index ee8ad9e807..5866747075 100644 --- a/api2/views.py +++ b/api2/views.py @@ -31,7 +31,7 @@ from pysearpc import SearpcError from seaserv import seafserv_rpc, seafserv_threaded_rpc, server_repo_size, \ get_personal_groups_by_user, get_session_info, get_repo_token_nonnull, \ get_group_repos, get_repo, check_permission, get_commits, is_passwd_set,\ - list_personal_repos_by_owner, list_personal_shared_repos + list_personal_repos_by_owner, list_personal_shared_repos, check_quota json_content_type = 'application/json; charset=utf-8' @@ -332,8 +332,8 @@ class UploadLinkView(APIView): else: return api_error(status.HTTP_403_FORBIDDEN, "Can not access repo") - if request.cloud_mode and seafserv_threaded_rpc.check_quota(repo_id) < 0: - return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, 'Above quota') + if check_quota(repo_id) < 0: + return api_error(status.HTTP_520_OPERATION_FAILED, 'Above quota') upload_url = gen_file_upload_url(token, 'upload-api') return Response(upload_url) diff --git a/organizations/urls.py b/organizations/urls.py index 402de53f4c..178ba2802b 100644 --- a/organizations/urls.py +++ b/organizations/urls.py @@ -1,7 +1,6 @@ from django.conf.urls.defaults import * from views import * -# from seahub.views import RepoView, RepoHistoryView urlpatterns = patterns('', url(r'^create/$', create_org, name='create_org'), diff --git a/organizations/views.py b/organizations/views.py index e2d3319411..e62f7b4e02 100644 --- a/organizations/views.py +++ b/organizations/views.py @@ -38,7 +38,7 @@ from seahub.forms import RepoCreateForm, SharedRepoCreateForm import seahub.settings as seahub_settings from seahub.utils import render_error, render_permission_error, gen_token, \ validate_group_name, string2list, calculate_repo_last_modify, MAX_INT, \ - EVENTS_ENABLED, get_starred_files + EVENTS_ENABLED, get_starred_files, gen_shared_link from seahub.views import myhome from seahub.signals import repo_created @@ -678,7 +678,7 @@ def org_repo_share(request, url_prefix): @login_required def org_shareadmin(request, url_prefix): """ - List personal repos I share to others, include groups and users. + List org shared repos and org shared links. """ username = request.user.username @@ -688,7 +688,7 @@ def org_shareadmin(request, url_prefix): shared_repos = [] - # personal repos shared by this user + # org repos shared by this user shared_repos += seafserv_threaded_rpc.list_org_share_repos(org.org_id, username, 'from_email', @@ -727,16 +727,24 @@ def org_shareadmin(request, url_prefix): shared_repos.sort(lambda x, y: cmp(x.repo_id, y.repo_id)) - # File shared links + # shared links fileshares = FileShare.objects.filter(username=request.user.username) - o_fileshares = [] # shared files in org repos + o_fileshares = [] # shared links in org repos for fs in fileshares: - if not is_personal_repo(fs.repo_id): - # only list files in org repos - fs.filename = os.path.basename(fs.path) - fs.repo = get_repo(fs.repo_id) + if not is_personal_repo(fs.repo_id): # only list links in org repos + if fs.s_type == 'f': + fs.filename = os.path.basename(fs.path) + fs.shared_link = gen_shared_link(request, fs.token, 'f') + else: + fs.filename = os.path.basename(fs.path[:-1]) + fs.shared_link = gen_shared_link(request, fs.token, 'd') + r = get_repo(fs.repo_id) # get_repo may returns None + if not r: + continue + fs.repo = r o_fileshares.append(fs) + # use org base template request.base_template = 'org_base.html' return render_to_response('repo/share_admin.html', { diff --git a/share/views.py b/share/views.py index c5d8716a6f..db004a6b41 100644 --- a/share/views.py +++ b/share/views.py @@ -185,7 +185,7 @@ def repo_remove_share(request): @login_required def share_admin(request): """ - List personal repos I share to others, include groups and users. + List personal shared repos and shared links. """ username = request.user.username @@ -244,8 +244,11 @@ def share_admin(request): fs.shared_link = gen_shared_link(request, fs.token, 'f') else: fs.filename = os.path.basename(fs.path[:-1]) - fs.shared_link = gen_shared_link(request, fs.token, 'd') - fs.repo = get_repo(fs.repo_id) + fs.shared_link = gen_shared_link(request, fs.token, 'd') + r = get_repo(fs.repo_id) + if not r: # get_repo may returns None + continue + fs.repo = r p_fileshares.append(fs) return render_to_response('repo/share_admin.html', {