1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 23:48:47 +00:00

Fixed bug in org shared links

This commit is contained in:
zhengxie
2013-01-08 16:35:34 +08:00
parent 5249230986
commit e536fbfef8
4 changed files with 26 additions and 16 deletions

View File

@@ -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)

View File

@@ -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'),

View File

@@ -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
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.repo = get_repo(fs.repo_id)
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', {

View File

@@ -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
@@ -245,7 +245,10 @@ def share_admin(request):
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)
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', {