mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-22 20:08:19 +00:00
Merge pull request #358 from haiwen/fix-office-preview-in-shared-link
fixed preview office files in share links and priv shares
This commit is contained in:
@@ -636,7 +636,7 @@ def view_shared_file(request, token):
|
|||||||
else:
|
else:
|
||||||
return render_to_response('share_access_validation.html', d,
|
return render_to_response('share_access_validation.html', d,
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
shared_by = fileshare.username
|
shared_by = fileshare.username
|
||||||
repo_id = fileshare.repo_id
|
repo_id = fileshare.repo_id
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
@@ -696,6 +696,8 @@ def view_shared_file(request, token):
|
|||||||
save_to_link = reverse('save_shared_link') + '?t=' + token
|
save_to_link = reverse('save_shared_link') + '?t=' + token
|
||||||
traffic_over_limit = user_traffic_over_limit(shared_by)
|
traffic_over_limit = user_traffic_over_limit(shared_by)
|
||||||
|
|
||||||
|
office_preview_token = ret_dict.get('office_preview_token', '')
|
||||||
|
|
||||||
return render_to_response('shared_file_view.html', {
|
return render_to_response('shared_file_view.html', {
|
||||||
'repo': repo,
|
'repo': repo,
|
||||||
'obj_id': obj_id,
|
'obj_id': obj_id,
|
||||||
@@ -713,6 +715,7 @@ def view_shared_file(request, token):
|
|||||||
'file_encoding_list':ret_dict['file_encoding_list'],
|
'file_encoding_list':ret_dict['file_encoding_list'],
|
||||||
'html_exists': ret_dict['html_exists'],
|
'html_exists': ret_dict['html_exists'],
|
||||||
'html_detail': ret_dict.get('html_detail', {}),
|
'html_detail': ret_dict.get('html_detail', {}),
|
||||||
|
'office_preview_token': office_preview_token,
|
||||||
'filetype': ret_dict['filetype'],
|
'filetype': ret_dict['filetype'],
|
||||||
'use_pdfjs':USE_PDFJS,
|
'use_pdfjs':USE_PDFJS,
|
||||||
'accessible_repos': accessible_repos,
|
'accessible_repos': accessible_repos,
|
||||||
@@ -722,7 +725,7 @@ def view_shared_file(request, token):
|
|||||||
|
|
||||||
def view_raw_shared_file(request, token, obj_id, file_name):
|
def view_raw_shared_file(request, token, obj_id, file_name):
|
||||||
"""Returns raw content of a shared file.
|
"""Returns raw content of a shared file.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
- `request`:
|
- `request`:
|
||||||
- `token`:
|
- `token`:
|
||||||
@@ -844,6 +847,7 @@ def view_file_via_shared_dir(request, token):
|
|||||||
ret_dict['err'] = err_msg
|
ret_dict['err'] = err_msg
|
||||||
|
|
||||||
traffic_over_limit = user_traffic_over_limit(shared_by)
|
traffic_over_limit = user_traffic_over_limit(shared_by)
|
||||||
|
office_preview_token = ret_dict.get('office_preview_token', '')
|
||||||
|
|
||||||
return render_to_response('shared_file_view.html', {
|
return render_to_response('shared_file_view.html', {
|
||||||
'repo': repo,
|
'repo': repo,
|
||||||
@@ -863,6 +867,7 @@ def view_file_via_shared_dir(request, token):
|
|||||||
'file_encoding_list':ret_dict['file_encoding_list'],
|
'file_encoding_list':ret_dict['file_encoding_list'],
|
||||||
'html_exists': ret_dict['html_exists'],
|
'html_exists': ret_dict['html_exists'],
|
||||||
'html_detail': ret_dict.get('html_detail', {}),
|
'html_detail': ret_dict.get('html_detail', {}),
|
||||||
|
'office_preview_token': office_preview_token,
|
||||||
'filetype': ret_dict['filetype'],
|
'filetype': ret_dict['filetype'],
|
||||||
'use_pdfjs':USE_PDFJS,
|
'use_pdfjs':USE_PDFJS,
|
||||||
'zipped': zipped,
|
'zipped': zipped,
|
||||||
@@ -1033,7 +1038,7 @@ def file_edit(request, repo_id):
|
|||||||
@login_required
|
@login_required
|
||||||
def view_raw_file(request, repo_id, file_path):
|
def view_raw_file(request, repo_id, file_path):
|
||||||
"""Returns raw content of a file.
|
"""Returns raw content of a file.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
- `request`:
|
- `request`:
|
||||||
- `repo_id`:
|
- `repo_id`:
|
||||||
@@ -1059,7 +1064,7 @@ def view_raw_file(request, repo_id, file_path):
|
|||||||
|
|
||||||
def send_file_download_msg(request, repo, path, dl_type):
|
def send_file_download_msg(request, repo, path, dl_type):
|
||||||
"""Send file downlaod msg.
|
"""Send file downlaod msg.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
- `request`:
|
- `request`:
|
||||||
- `repo`:
|
- `repo`:
|
||||||
@@ -1256,9 +1261,9 @@ def office_convert_add_task(request):
|
|||||||
return HttpResponseBadRequest('invalid params')
|
return HttpResponseBadRequest('invalid params')
|
||||||
|
|
||||||
resp = add_office_convert_task(file_id, doctype, raw_path, internal=True)
|
resp = add_office_convert_task(file_id, doctype, raw_path, internal=True)
|
||||||
|
|
||||||
return HttpResponse(json.dumps(resp), content_type=content_type)
|
return HttpResponse(json.dumps(resp), content_type=content_type)
|
||||||
|
|
||||||
def check_office_token(func):
|
def check_office_token(func):
|
||||||
'''Set the `office_convert_add_task` attr on the request object for office
|
'''Set the `office_convert_add_task` attr on the request object for office
|
||||||
preview related requests
|
preview related requests
|
||||||
@@ -1268,14 +1273,14 @@ def check_office_token(func):
|
|||||||
token = request.META.get('HTTP_X_SEAFILE_OFFICE_PREVIEW_TOKEN', '')
|
token = request.META.get('HTTP_X_SEAFILE_OFFICE_PREVIEW_TOKEN', '')
|
||||||
if token and len(token) != 32:
|
if token and len(token) != 32:
|
||||||
return HttpResponseForbidden()
|
return HttpResponseForbidden()
|
||||||
|
|
||||||
if not token:
|
if not token:
|
||||||
token = request.GET.get('office_preview_token', '')
|
token = request.GET.get('office_preview_token', '')
|
||||||
|
|
||||||
request.office_preview_token = token
|
request.office_preview_token = token
|
||||||
|
|
||||||
return func(request, *args, **kwargs)
|
return func(request, *args, **kwargs)
|
||||||
|
|
||||||
return newfunc
|
return newfunc
|
||||||
|
|
||||||
@check_office_token
|
@check_office_token
|
||||||
@@ -1320,7 +1325,7 @@ def office_convert_get_page(request, path, internal=False):
|
|||||||
m = _OFFICE_PAGE_PATTERN.match(path)
|
m = _OFFICE_PAGE_PATTERN.match(path)
|
||||||
if not m:
|
if not m:
|
||||||
return HttpResponseForbidden()
|
return HttpResponseForbidden()
|
||||||
|
|
||||||
file_id = m.group(1)
|
file_id = m.group(1)
|
||||||
if path.endswith('file.css'):
|
if path.endswith('file.css'):
|
||||||
pass
|
pass
|
||||||
@@ -1409,6 +1414,7 @@ def view_priv_shared_file(request, token):
|
|||||||
|
|
||||||
accessible_repos = get_unencry_rw_repos_by_user(request)
|
accessible_repos = get_unencry_rw_repos_by_user(request)
|
||||||
save_to_link = reverse('save_private_file_share', args=[pfs.token])
|
save_to_link = reverse('save_private_file_share', args=[pfs.token])
|
||||||
|
office_preview_token = ret_dict.get('office_preview_token', '')
|
||||||
|
|
||||||
return render_to_response('shared_file_view.html', {
|
return render_to_response('shared_file_view.html', {
|
||||||
'repo': repo,
|
'repo': repo,
|
||||||
@@ -1426,6 +1432,7 @@ def view_priv_shared_file(request, token):
|
|||||||
'file_encoding_list':ret_dict['file_encoding_list'],
|
'file_encoding_list':ret_dict['file_encoding_list'],
|
||||||
'html_exists': ret_dict['html_exists'],
|
'html_exists': ret_dict['html_exists'],
|
||||||
'html_detail': ret_dict.get('html_detail', {}),
|
'html_detail': ret_dict.get('html_detail', {}),
|
||||||
|
'office_preview_token': office_preview_token,
|
||||||
'filetype': ret_dict['filetype'],
|
'filetype': ret_dict['filetype'],
|
||||||
'use_pdfjs':USE_PDFJS,
|
'use_pdfjs':USE_PDFJS,
|
||||||
'accessible_repos': accessible_repos,
|
'accessible_repos': accessible_repos,
|
||||||
|
Reference in New Issue
Block a user