mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-11 20:01:40 +00:00
rm ajax get file op url
This commit is contained in:
parent
6d577d83e3
commit
06bc49d17b
@ -1208,9 +1208,9 @@ class FileBlockDownloadLinkView(APIView):
|
|||||||
return Response(url)
|
return Response(url)
|
||||||
|
|
||||||
class UploadLinkView(APIView):
|
class UploadLinkView(APIView):
|
||||||
authentication_classes = (TokenAuthentication, )
|
authentication_classes = (TokenAuthentication, SessionAuthentication)
|
||||||
permission_classes = (IsAuthenticated, )
|
permission_classes = (IsAuthenticated,)
|
||||||
throttle_classes = (UserRateThrottle, )
|
throttle_classes = (UserRateThrottle,)
|
||||||
|
|
||||||
def get(self, request, repo_id, format=None):
|
def get(self, request, repo_id, format=None):
|
||||||
# recourse check
|
# recourse check
|
||||||
@ -1235,13 +1235,22 @@ class UploadLinkView(APIView):
|
|||||||
|
|
||||||
token = seafile_api.get_fileserver_access_token(
|
token = seafile_api.get_fileserver_access_token(
|
||||||
repo_id, 'dummy', 'upload', request.user.username, use_onetime = False)
|
repo_id, 'dummy', 'upload', request.user.username, use_onetime = False)
|
||||||
|
|
||||||
|
req_from = request.GET.get('from', 'api')
|
||||||
|
if req_from == 'api':
|
||||||
url = gen_file_upload_url(token, 'upload-api')
|
url = gen_file_upload_url(token, 'upload-api')
|
||||||
|
elif req_from == 'web':
|
||||||
|
url = gen_file_upload_url(token, 'upload-aj')
|
||||||
|
else:
|
||||||
|
error_msg = 'from invalid.'
|
||||||
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
return Response(url)
|
return Response(url)
|
||||||
|
|
||||||
class UpdateLinkView(APIView):
|
class UpdateLinkView(APIView):
|
||||||
authentication_classes = (TokenAuthentication, )
|
authentication_classes = (TokenAuthentication, SessionAuthentication)
|
||||||
permission_classes = (IsAuthenticated, )
|
permission_classes = (IsAuthenticated,)
|
||||||
throttle_classes = (UserRateThrottle, )
|
throttle_classes = (UserRateThrottle,)
|
||||||
|
|
||||||
def get(self, request, repo_id, format=None):
|
def get(self, request, repo_id, format=None):
|
||||||
# recourse check
|
# recourse check
|
||||||
@ -1266,7 +1275,16 @@ class UpdateLinkView(APIView):
|
|||||||
|
|
||||||
token = seafile_api.get_fileserver_access_token(
|
token = seafile_api.get_fileserver_access_token(
|
||||||
repo_id, 'dummy', 'update', request.user.username)
|
repo_id, 'dummy', 'update', request.user.username)
|
||||||
|
|
||||||
|
req_from = request.GET.get('from', 'api')
|
||||||
|
if req_from == 'api':
|
||||||
url = gen_file_upload_url(token, 'update-api')
|
url = gen_file_upload_url(token, 'update-api')
|
||||||
|
elif req_from == 'web':
|
||||||
|
url = gen_file_upload_url(token, 'update-aj')
|
||||||
|
else:
|
||||||
|
error_msg = 'from invalid.'
|
||||||
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
return Response(url)
|
return Response(url)
|
||||||
|
|
||||||
class UploadBlksLinkView(APIView):
|
class UploadBlksLinkView(APIView):
|
||||||
|
@ -144,7 +144,6 @@ urlpatterns = patterns(
|
|||||||
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/current_commit/$', get_current_commit, name='get_current_commit'),
|
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/current_commit/$', get_current_commit, name='get_current_commit'),
|
||||||
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/history/changes/$', repo_history_changes, name='repo_history_changes'),
|
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/history/changes/$', repo_history_changes, name='repo_history_changes'),
|
||||||
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/encrypted_file/(?P<file_id>[0-9a-f]{40})/download/$', download_enc_file, name='download_enc_file'),
|
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/encrypted_file/(?P<file_id>[0-9a-f]{40})/download/$', download_enc_file, name='download_enc_file'),
|
||||||
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/file_op_url/$', get_file_op_url, name='get_file_op_url'),
|
|
||||||
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/get-file-uploaded-bytes/$', get_file_uploaded_bytes, name='get_file_uploaded_bytes'),
|
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/get-file-uploaded-bytes/$', get_file_uploaded_bytes, name='get_file_uploaded_bytes'),
|
||||||
url(r'^ajax/u/d/(?P<token>[-0-9a-f]{10})/upload/$', get_file_upload_url_ul, name='get_file_upload_url_ul'),
|
url(r'^ajax/u/d/(?P<token>[-0-9a-f]{10})/upload/$', get_file_upload_url_ul, name='get_file_upload_url_ul'),
|
||||||
url(r'^ajax/group/(?P<group_id>\d+)/repos/$', get_unenc_group_repos, name='get_group_repos'),
|
url(r'^ajax/group/(?P<group_id>\d+)/repos/$', get_unenc_group_repos, name='get_group_repos'),
|
||||||
|
@ -33,7 +33,7 @@ from seahub.notifications.views import add_notice_from_info
|
|||||||
from seahub.share.models import UploadLinkShare
|
from seahub.share.models import UploadLinkShare
|
||||||
from seahub.signals import upload_file_successful
|
from seahub.signals import upload_file_successful
|
||||||
from seahub.views import get_unencry_rw_repos_by_user, \
|
from seahub.views import get_unencry_rw_repos_by_user, \
|
||||||
get_system_default_repo_id, get_diff, check_folder_permission
|
get_diff, check_folder_permission
|
||||||
from seahub.group.utils import is_group_member, is_group_admin_or_owner, \
|
from seahub.group.utils import is_group_member, is_group_admin_or_owner, \
|
||||||
get_group_member_info
|
get_group_member_info
|
||||||
import seahub.settings as settings
|
import seahub.settings as settings
|
||||||
@ -1060,50 +1060,6 @@ def get_file_uploaded_bytes(request, repo_id):
|
|||||||
return HttpResponse(json.dumps({"uploadedBytes": uploadedBytes}),
|
return HttpResponse(json.dumps({"uploadedBytes": uploadedBytes}),
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
|
|
||||||
@login_required_ajax
|
|
||||||
def get_file_op_url(request, repo_id):
|
|
||||||
"""Get file upload/update url for AJAX.
|
|
||||||
"""
|
|
||||||
content_type = 'application/json; charset=utf-8'
|
|
||||||
|
|
||||||
op_type = request.GET.get('op_type') # value can be 'upload', 'update', 'upload-blks', 'update-blks'
|
|
||||||
path = request.GET.get('path')
|
|
||||||
if not (op_type and path):
|
|
||||||
err_msg = _(u'Argument missing')
|
|
||||||
return HttpResponse(json.dumps({"error": err_msg}), status=400,
|
|
||||||
content_type=content_type)
|
|
||||||
|
|
||||||
repo = get_repo(repo_id)
|
|
||||||
if not repo:
|
|
||||||
err_msg = _(u'Library does not exist')
|
|
||||||
return HttpResponse(json.dumps({"error": err_msg}), status=400,
|
|
||||||
content_type=content_type)
|
|
||||||
|
|
||||||
# permission checking
|
|
||||||
if check_folder_permission(request, repo.id, path) != 'rw':
|
|
||||||
err_msg = _(u'Permission denied')
|
|
||||||
return HttpResponse(json.dumps({"error": err_msg}), status=403,
|
|
||||||
content_type=content_type)
|
|
||||||
|
|
||||||
username = request.user.username
|
|
||||||
if op_type == 'upload':
|
|
||||||
if request.user.is_staff and get_system_default_repo_id() == repo.id:
|
|
||||||
# Set username to 'system' to let fileserver release permission
|
|
||||||
# check.
|
|
||||||
username = 'system'
|
|
||||||
|
|
||||||
if op_type.startswith('update'):
|
|
||||||
token = seafile_api.get_fileserver_access_token(repo_id, 'dummy',
|
|
||||||
op_type, username)
|
|
||||||
else:
|
|
||||||
token = seafile_api.get_fileserver_access_token(repo_id, 'dummy',
|
|
||||||
op_type, username,
|
|
||||||
use_onetime=False)
|
|
||||||
|
|
||||||
url = gen_file_upload_url(token, op_type + '-aj')
|
|
||||||
|
|
||||||
return HttpResponse(json.dumps({"url": url}), content_type=content_type)
|
|
||||||
|
|
||||||
def get_file_upload_url_ul(request, token):
|
def get_file_upload_url_ul(request, token):
|
||||||
"""Get file upload url in dir upload link.
|
"""Get file upload url in dir upload link.
|
||||||
|
|
||||||
|
@ -155,16 +155,16 @@ define([
|
|||||||
var upload_file = function() {
|
var upload_file = function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: Common.getUrl({
|
url: Common.getUrl({
|
||||||
name: 'get_file_op_url',
|
name: 'repo_upload_link',
|
||||||
repo_id: dirents.repo_id
|
repo_id: dirents.repo_id
|
||||||
}),
|
}),
|
||||||
data: {
|
data: {
|
||||||
'op_type': 'upload',
|
'from': 'web',
|
||||||
'path': dirents.path
|
'path': dirents.path
|
||||||
},
|
},
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function(ret) {
|
success: function(returned_url) {
|
||||||
if (enable_upload_folder && file.relative_path) { // 'add folder'
|
if (enable_upload_folder && file.relative_path) { // 'add folder'
|
||||||
var file_path = file.relative_path,
|
var file_path = file.relative_path,
|
||||||
r_path = file_path.substring(0, file_path.lastIndexOf('/') + 1),
|
r_path = file_path.substring(0, file_path.lastIndexOf('/') + 1),
|
||||||
@ -173,7 +173,7 @@ define([
|
|||||||
popup.fileupload('option', {
|
popup.fileupload('option', {
|
||||||
'formData': formData
|
'formData': formData
|
||||||
});
|
});
|
||||||
data.url = ret['url'];
|
data.url = returned_url;
|
||||||
data.jqXHR = popup.fileupload('send', data);
|
data.jqXHR = popup.fileupload('send', data);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -194,13 +194,13 @@ define([
|
|||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function(file_uploaded_data) {
|
success: function(file_uploaded_data) {
|
||||||
popup.fileupload('option', 'uploadedBytes', file_uploaded_data.uploadedBytes);
|
popup.fileupload('option', 'uploadedBytes', file_uploaded_data.uploadedBytes);
|
||||||
data.url = ret['url'];
|
data.url = returned_url;
|
||||||
data.jqXHR = popup.fileupload('send', data);
|
data.jqXHR = popup.fileupload('send', data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
data.url = ret['url'];
|
data.url = returned_url;
|
||||||
data.jqXHR = popup.fileupload('send', data);
|
data.jqXHR = popup.fileupload('send', data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -219,23 +219,23 @@ define([
|
|||||||
var update_file = function() {
|
var update_file = function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: Common.getUrl({
|
url: Common.getUrl({
|
||||||
name: 'get_file_op_url',
|
name: 'repo_update_link',
|
||||||
repo_id: dirents.repo_id
|
repo_id: dirents.repo_id
|
||||||
}),
|
}),
|
||||||
data: {
|
data: {
|
||||||
'op_type': 'update',
|
'from': 'web',
|
||||||
'path': dirents.path
|
'path': dirents.path
|
||||||
},
|
},
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function(ret) {
|
success: function(returned_url) {
|
||||||
var formData = popup.fileupload('option', 'formData');
|
var formData = popup.fileupload('option', 'formData');
|
||||||
formData.target_file = formData.parent_dir + file.name;
|
formData.target_file = formData.parent_dir + file.name;
|
||||||
popup.fileupload('option', 'formData', formData);
|
popup.fileupload('option', 'formData', formData);
|
||||||
|
|
||||||
file.to_update = true;
|
file.to_update = true;
|
||||||
|
|
||||||
data.url = ret['url'];
|
data.url = returned_url;
|
||||||
data.jqXHR = popup.fileupload('send', data);
|
data.jqXHR = popup.fileupload('send', data);
|
||||||
},
|
},
|
||||||
error: function() {
|
error: function() {
|
||||||
|
@ -94,7 +94,6 @@ define([
|
|||||||
case 'del_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/delete/';
|
case 'del_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/delete/';
|
||||||
case 'mv_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/move/';
|
case 'mv_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/move/';
|
||||||
case 'cp_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/copy/';
|
case 'cp_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/copy/';
|
||||||
case 'get_file_op_url': return siteRoot + 'ajax/repo/' + options.repo_id + '/file_op_url/';
|
|
||||||
case 'get_file_uploaded_bytes': return siteRoot + 'ajax/repo/' + options.repo_id + '/get-file-uploaded-bytes/';
|
case 'get_file_uploaded_bytes': return siteRoot + 'ajax/repo/' + options.repo_id + '/get-file-uploaded-bytes/';
|
||||||
case 'get_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/';
|
case 'get_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/';
|
||||||
|
|
||||||
@ -116,6 +115,8 @@ define([
|
|||||||
case 'repo_shared_upload_link': return siteRoot + 'api2/repos/' + options.repo_id + '/upload-shared-links/' + options.token + '/';
|
case 'repo_shared_upload_link': return siteRoot + 'api2/repos/' + options.repo_id + '/upload-shared-links/' + options.token + '/';
|
||||||
case 'repo_user_folder_perm': return siteRoot + 'api2/repos/' + options.repo_id + '/user-folder-perm/';
|
case 'repo_user_folder_perm': return siteRoot + 'api2/repos/' + options.repo_id + '/user-folder-perm/';
|
||||||
case 'repo_group_folder_perm': return siteRoot + 'api2/repos/' + options.repo_id + '/group-folder-perm/';
|
case 'repo_group_folder_perm': return siteRoot + 'api2/repos/' + options.repo_id + '/group-folder-perm/';
|
||||||
|
case 'repo_upload_link': return siteRoot + 'api2/repos/' + options.repo_id + '/upload-link/';
|
||||||
|
case 'repo_update_link': return siteRoot + 'api2/repos/' + options.repo_id + '/update-link/';
|
||||||
|
|
||||||
// Share admin
|
// Share admin
|
||||||
case 'share_admin_repos': return siteRoot + 'api/v2.1/shared-repos/';
|
case 'share_admin_repos': return siteRoot + 'api/v2.1/shared-repos/';
|
||||||
|
Loading…
Reference in New Issue
Block a user