def action(request, interface=None, action=None): response = {'status': -1, 'message': ''} interface = json.loads(request.POST.get('interface')) app_ids = json.loads(request.POST.get('app_ids')) operation = json.loads(request.POST.get('operation')) if operation.get('action') == 'kill' and DISABLE_KILLING_JOBS.get(): return serve_403_error(request) response['operation'] = operation response.update(get_api(request.user, interface).action(app_ids, operation)) return JsonResponse(response)
def download(request, id, format, user_agent=None): if not ENABLE_DOWNLOAD.get(): return serve_403_error(request) try: query_history = authorized_get_query_history(request, id, must_exist=True) db = dbms.get(request.user, query_history.get_query_server_config()) LOG.debug('Download results for query %s: [ %s ]' % (query_history.server_id, query_history.query)) return data_export.download(query_history.get_handle(), format, db, user_agent=user_agent) except Exception, e: if not hasattr(e, 'message') or not e.message: message = e else: message = e.message raise PopupException(message, detail='')
def download(request, id, format, user_agent=None): if not ENABLE_DOWNLOAD.get(): return serve_403_error(request) try: query_history = authorized_get_query_history(request, id, must_exist=True) db = dbms.get(request.user, query_history.get_query_server_config()) LOG.debug('Download results for query %s: [ %s ]' % (query_history.server_id, query_history.query)) return data_export.download(query_history.get_handle(), format, db, user_agent=user_agent) except Exception as e: if not hasattr(e, 'message') or not e.message: message = e else: message = e.message raise PopupException(message, detail='')
def download(request): if not ENABLE_DOWNLOAD.get(): return serve_403_error(request) notebook = json.loads(request.POST.get('notebook', '{}')) snippet = json.loads(request.POST.get('snippet', '{}')) file_format = request.POST.get('format', 'csv') user_agent = request.META.get('HTTP_USER_AGENT') file_name = _get_snippet_name(notebook) content_generator = get_api(request, snippet).download(notebook, snippet, file_format=file_format) response = export_csvxls.make_response(content_generator, file_format, file_name, user_agent=user_agent) if snippet['id']: response.set_cookie('download-%s' % snippet['id'], json.dumps({ 'truncated': 'false', 'row_counter': '0' }), max_age=DOWNLOAD_COOKIE_AGE) if response: request.audit = { 'operation': 'DOWNLOAD', 'operationText': 'User %s downloaded results from %s as %s' % (request.user.username, _get_snippet_name(notebook), file_format), 'allowed': True } return response
def share_document_link(request): """ Globally activate of de-activate access to a document for logged-in users. Example of input: {"uuid": "xxxx", "perm": "read" / "write" / "off"} """ if not is_admin(request.user) and not ENABLE_SHARING.get(): return serve_403_error(request) uuid = request.POST.get('uuid') perm = request.POST.get('perm') if not uuid or not perm: raise PopupException( _('share_document_link requires uuid and permission data')) else: uuid = json.loads(uuid) perm = json.loads(perm) doc = Document2.objects.get_by_uuid(user=request.user, uuid=uuid) doc = doc.share_link(request.user, perm=perm) return JsonResponse({'status': 0, 'document': doc.to_dict()})
def download(request): if not ENABLE_DOWNLOAD.get(): return serve_403_error(request) notebook = json.loads(request.POST.get('notebook', '{}')) snippet = json.loads(request.POST.get('snippet', '{}')) file_format = request.POST.get('format', 'csv') response = get_api(request, snippet).download(notebook, snippet, file_format) if response: request.audit = { 'operation': 'DOWNLOAD', 'operationText': 'User %s downloaded results from %s as %s' % (request.user.username, _get_snippet_name(notebook), file_format), 'allowed': True } return response