Quellcode durchsuchen

HUE-8936 [tracing] Convert check_document_access_permission with @wraps function

Romain vor 6 Jahren
Ursprung
Commit
81216517cc

+ 22 - 22
desktop/libs/notebook/src/notebook/api.py

@@ -82,7 +82,7 @@ def create_notebook(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def create_session(request):
   response = {'status': -1}
@@ -99,7 +99,7 @@ def create_session(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def close_session(request):
   response = {'status': -1}
@@ -174,8 +174,8 @@ def _execute_notebook(request, notebook, snippet):
   return response
 
 @require_POST
-@check_document_access_permission()
-@api_error_handler
+@check_document_access_permission
+# @api_error_handler
 def execute(request, engine=None):
   notebook = json.loads(request.POST.get('notebook', '{}'))
   snippet = json.loads(request.POST.get('snippet', '{}'))
@@ -192,7 +192,7 @@ def execute(request, engine=None):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def check_status(request):
   response = {'status': -1}
@@ -236,7 +236,7 @@ def check_status(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def fetch_result_data(request):
   response = {'status': -1}
@@ -259,7 +259,7 @@ def fetch_result_data(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def fetch_result_metadata(request):
   response = {'status': -1}
@@ -274,7 +274,7 @@ def fetch_result_metadata(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def fetch_result_size(request):
   response = {'status': -1}
@@ -289,7 +289,7 @@ def fetch_result_size(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def cancel_statement(request):
   response = {'status': -1}
@@ -306,7 +306,7 @@ def cancel_statement(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def get_logs(request):
   response = {'status': -1}
@@ -438,7 +438,7 @@ def _get_statement(notebook):
 
 @require_GET
 @api_error_handler
-@check_document_access_permission()
+@check_document_access_permission
 def get_history(request):
   response = {'status': -1}
 
@@ -511,7 +511,7 @@ def clear_history(request):
 
 
 @require_GET
-@check_document_access_permission()
+@check_document_access_permission
 def open_notebook(request):
   response = {'status': -1}
 
@@ -525,7 +525,7 @@ def open_notebook(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 def close_notebook(request):
   response = {'status': -1, 'result': []}
 
@@ -557,7 +557,7 @@ def close_notebook(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 def close_statement(request):
   response = {'status': -1}
 
@@ -579,7 +579,7 @@ def close_statement(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def autocomplete(request, server=None, database=None, table=None, column=None, nested=None):
   response = {'status': -1}
@@ -600,7 +600,7 @@ def autocomplete(request, server=None, database=None, table=None, column=None, n
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def get_sample_data(request, server=None, database=None, table=None, column=None):
   response = {'status': -1}
@@ -620,7 +620,7 @@ def get_sample_data(request, server=None, database=None, table=None, column=None
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def explain(request):
   response = {'status': -1}
@@ -645,7 +645,7 @@ def format(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def export_result(request):
   response = {'status': -1, 'message': _('Success')}
@@ -762,7 +762,7 @@ def export_result(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def statement_risk(request):
   response = {'status': -1, 'message': ''}
@@ -779,7 +779,7 @@ def statement_risk(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def statement_compatibility(request):
   response = {'status': -1, 'message': ''}
@@ -798,7 +798,7 @@ def statement_compatibility(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def statement_similarity(request):
   response = {'status': -1, 'message': ''}
@@ -816,7 +816,7 @@ def statement_similarity(request):
 
 
 @require_POST
-@check_document_access_permission()
+@check_document_access_permission
 @api_error_handler
 def get_external_statement(request):
   response = {'status': -1, 'message': ''}

+ 18 - 19
desktop/libs/notebook/src/notebook/decorators.py

@@ -58,26 +58,25 @@ def check_editor_access_permission():
   return inner
 
 
-def check_document_access_permission():
-  def inner(view_func):
-    def decorate(request, *args, **kwargs):
-      notebook_id = request.GET.get('notebook', request.GET.get('editor'))
-      if not notebook_id:
-        notebook_id = json.loads(request.POST.get('notebook', '{}')).get('id')
-
-      try:
-        if notebook_id:
-          if str(notebook_id).isdigit():
-            document = Document2.objects.get(id=notebook_id)
-            document.can_read_or_exception(request.user)
-          else:
-            Document2.objects.get_by_uuid(user=request.user, uuid=notebook_id)
-      except Document2.DoesNotExist:
-        raise PopupException(_('Document %(id)s does not exist') % {'id': notebook_id})
+def check_document_access_permission(f):
+  @wraps(f)
+  def wrapper(request, *args, **kwargs):
+    notebook_id = request.GET.get('notebook', request.GET.get('editor'))
+    if not notebook_id:
+      notebook_id = json.loads(request.POST.get('notebook', '{}')).get('id')
 
-      return view_func(request, *args, **kwargs)
-    return wraps(view_func)(decorate)
-  return inner
+    try:
+      if notebook_id:
+        if str(notebook_id).isdigit():
+          document = Document2.objects.get(id=notebook_id)
+          document.can_read_or_exception(request.user)
+        else:
+          Document2.objects.get_by_uuid(user=request.user, uuid=notebook_id)
+    except Document2.DoesNotExist:
+      raise PopupException(_('Document %(id)s does not exist') % {'id': notebook_id})
+
+    return f(request, *args, **kwargs)
+  return wrapper
 
 
 def check_document_modify_permission():

+ 8 - 8
desktop/libs/notebook/src/notebook/views.py

@@ -85,7 +85,7 @@ def notebooks(request):
   })
 
 
-@check_document_access_permission()
+@check_document_access_permission
 def notebook(request, is_embeddable=False):
   if not SHOW_NOTEBOOKS.get() or not request.user.has_hue_permission(action="access", app='notebook'):
     return serve_403_error(request)
@@ -115,13 +115,13 @@ def notebook(request, is_embeddable=False):
   })
 
 
-@check_document_access_permission()
+@check_document_access_permission
 def notebook_embeddable(request):
   return notebook(request, True)
 
 
 @check_editor_access_permission()
-@check_document_access_permission()
+@check_document_access_permission
 def editor(request, is_mobile=False, is_embeddable=False):
   editor_id = request.GET.get('editor')
   editor_type = request.GET.get('type', 'hive')
@@ -153,12 +153,12 @@ def editor(request, is_mobile=False, is_embeddable=False):
   })
 
 
-@check_document_access_permission()
+@check_document_access_permission
 def editor_embeddable(request):
   return editor(request, False, True)
 
 
-@check_document_access_permission()
+@check_document_access_permission
 def editor_m(request):
   return editor(request, True)
 
@@ -194,7 +194,7 @@ def browse(request, database, table, partition_spec=None):
     })
 
 # Deprecated in Hue 4
-@check_document_access_permission()
+@check_document_access_permission
 def execute_and_watch(request):
   notebook_id = request.GET.get('editor', request.GET.get('notebook'))
   snippet_id = int(request.GET['snippet'])
@@ -299,7 +299,7 @@ def delete(request):
   return JsonResponse(response)
 
 
-@check_document_access_permission()
+@check_document_access_permission
 def copy(request):
   response = {'status': -1}
 
@@ -332,7 +332,7 @@ def copy(request):
   return JsonResponse(response)
 
 
-@check_document_access_permission()
+@check_document_access_permission
 def download(request):
   if not ENABLE_DOWNLOAD.get():
     return serve_403_error(request)