Esempio n. 1
0
File: api2.py Progetto: lorelib/hue
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)
Esempio n. 2
0
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='')
Esempio n. 3
0
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='')
Esempio n. 4
0
File: views.py Progetto: ziq211/hue
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
Esempio n. 5
0
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()})
Esempio n. 6
0
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