1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-24 21:07:17 +00:00

Merge branch 'upload-link'

This commit is contained in:
zhengxie
2014-07-22 11:23:15 +08:00
3 changed files with 35 additions and 19 deletions

View File

@@ -35,7 +35,7 @@ from seahub.base.decorators import user_mods_check
from seahub.contacts.models import Contact
from seahub.contacts.signals import mail_sended
from seahub.signals import share_file_to_user_successful
from seahub.views import is_registered_user
from seahub.views import is_registered_user, check_repo_access_permission
from seahub.utils import render_permission_error, string2list, render_error, \
gen_token, gen_shared_link, gen_shared_upload_link, gen_dir_share_link, \
gen_file_share_link, IS_EMAIL_CONFIGURED, check_filename_with_rename, \
@@ -1082,21 +1082,33 @@ def get_shared_upload_link(request):
else:
if path[-1] != '/': # append '/' at end of path
path += '/'
l = UploadLinkShare.objects.filter(repo_id=repo_id).filter(
username=request.user.username).filter(path=path)
if len(l) > 0:
upload_link = l[0]
token = upload_link.token
repo = seaserv.get_repo(repo_id)
user_perm = check_repo_access_permission(repo.id, request.user)
if user_perm == 'r':
messages.error(request, _(u'Permission denied'))
return HttpResponse(status=403, content_type=content_type)
elif user_perm == 'rw':
l = UploadLinkShare.objects.filter(repo_id=repo_id).filter(
username=request.user.username).filter(path=path)
if len(l) > 0:
upload_link = l[0]
token = upload_link.token
else:
username = request.user.username
uls = UploadLinkShare.objects.create_upload_link_share(
username, repo_id, path, passwd)
token = uls.token
shared_upload_link = gen_shared_upload_link(token)
data = json.dumps({'token': token, 'shared_upload_link': shared_upload_link})
return HttpResponse(data, status=200, content_type=content_type)
else:
username = request.user.username
uls = UploadLinkShare.objects.create_upload_link_share(
username, repo_id, path, passwd)
token = uls.token
messages.error(request, _(u'Operation failed'))
return HttpResponse(json.dumps(), status=500, content_type=content_type)
shared_upload_link = gen_shared_upload_link(token)
data = json.dumps({'token': token, 'shared_upload_link': shared_upload_link})
return HttpResponse(data, status=200, content_type=content_type)
@login_required_ajax
def send_shared_upload_link(request):

View File

@@ -4,7 +4,9 @@
<div id="file-share-tabs" class="tab-popup-tabs">
<ul class="tab-popup-tabs-nav">
<li class="tab"><a href="#link-share" class="a">{% trans "Download Link" %}</a></li>
{% if user_perm == 'rw' %}
<li class="tab" id="upload-link-share-tab"><a href="#upload-link-share" class="a">{% trans "Upload Link" %}</a></li>{# for dir #}
{% endif %}
{% if is_repo_owner %}
<li class="tab" id="private-share-tab"><a href="#private-share" class="a">{% trans "Private Share" %}</a></li> {# for file #}
{% endif %}
@@ -62,6 +64,7 @@
</div>
</div>
{% if user_perm == 'rw' %}
<div id="upload-link-share">
<p class="tip">{% trans "You can share the generated link to others and then they can upload files to this directory via the link." %}</p>
<div id="upload-link-options">
@@ -96,6 +99,7 @@
</form>
</div>
</div>
{% endif %}
{% if ENABLE_SUB_LIBRARY and not repo.is_virtual and is_repo_owner %}
<div id="syncable-share">

View File

@@ -92,6 +92,7 @@ function showSharePopup(op, name, aj_urls, type, cur_path) {
$('input[name="file_shared_name"]').val(name);
$('input[name="file_shared_type"]').val(type);
{% if user_perm == 'rw' %}
// share upload link
$('#upload-link-share-tab .a').click(function() {
if (op.data('upload-link')) {
@@ -109,6 +110,7 @@ function showSharePopup(op, name, aj_urls, type, cur_path) {
$('#gen-upload-link-btn').data('url', aj_urls['upload-link']).data('obj', op);
$('#rm-shared-upload-link').data('obj', op);
});
{% endif %}
// 'private share' for file
$('#private-share-tab a').click(function() {
@@ -309,6 +311,7 @@ $('#rm-shared-link').click(function() {
});
});
{% if user_perm == 'rw' %}
$('#shared-upload-link-text').click(function() {
$(this).select();
});
@@ -438,11 +441,7 @@ $('#gen-upload-link-btn').click(function() {
obj.data('upload-link', upload_link).data('upload-token', data['token']);
},
error: function(xhr, textStatus, errorThrown) {
if (xhr.responseText) {
feedback(jQuery.parseJSON(xhr.responseText).error, 'error');
} else {
feedback("{% trans "Failed. Please check the network." %}", 'error');
}
location.reload(true);
}
});
return false;
@@ -484,6 +483,7 @@ $('#upload-link-passwd-switch').click(function () {
pwd_input.attr('disabled', true).addClass('input-disabled');
}
});
{% endif %}
$('#link-passwd-switch').click(function () {
var form = $('#link-options'),