1
0
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:
xiez
2015-02-02 16:32:38 +08:00

View File

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