瀏覽代碼

HUE-6033 [importer] Do not require the indexer permission

Romain Rigaux 8 年之前
父節點
當前提交
002d049

+ 1 - 0
apps/useradmin/src/useradmin/migrations/0007_remove_s3_access.py

@@ -8,6 +8,7 @@ import logging
 
 LOG = logging.getLogger(__name__)
 
+
 class Migration(SchemaMigration):
 
     def forwards(self, orm):

+ 1 - 1
desktop/core/src/desktop/middleware.py

@@ -306,7 +306,7 @@ class LoginAndPermissionMiddleware(object):
         app_accessed = ui_app_accessed
 
       if app_accessed and \
-          app_accessed not in ("desktop", "home", "home2", "about", "notebook") and \
+          app_accessed not in ("desktop", "home", "home2", "about", "notebook", "indexer") and \
           not (request.user.has_hue_permission(action="access", app=app_accessed) or
                request.user.has_hue_permission(action=access_view, app=app_accessed)):
         access_log(request, 'permission denied', level=access_log_level)

+ 14 - 2
desktop/libs/indexer/src/indexer/views.py

@@ -21,23 +21,31 @@ import json
 from django.utils.translation import ugettext as _
 
 from desktop.lib.django_util import JsonResponse, render
+from desktop.lib.exceptions_renderable import PopupException
 
 from indexer.controller2 import IndexController
-from indexer.management.commands import indexer_setup
 from indexer.fields import FIELD_TYPES, Field
-from indexer.operations import OPERATORS
 from indexer.file_format import get_file_indexable_format_types
+from indexer.management.commands import indexer_setup
+from indexer.operations import OPERATORS
+
 
 LOG = logging.getLogger(__name__)
 
 
 def collections(request, is_redirect=False):
+  if not request.user.has_hue_permission(action="access", app='search'):
+    raise PopupException(_('Missing permission.'), error_code=403)
+
   return render('collections.mako', request, {
     'is_embeddable': request.GET.get('is_embeddable', False),
   })
 
 
 def indexes(request):
+  if not request.user.has_hue_permission(action="access", app='search'):
+    raise PopupException(_('Missing permission.'), error_code=403)
+
   searcher = IndexController(request.user)
   indexes = searcher.get_indexes()
 
@@ -50,6 +58,9 @@ def indexes(request):
 
 
 def indexer(request):
+  if not request.user.has_hue_permission(action="access", app='search'):
+    raise PopupException(_('Missing permission.'), error_code=403)
+
   searcher = IndexController(request.user)
   indexes = searcher.get_indexes()
 
@@ -65,6 +76,7 @@ def indexer(request):
       'default_field_type' : json.dumps(Field().to_dict())
   })
 
+
 HIVE_PRIMITIVE_TYPES = \
     ("string", "tinyint", "smallint", "int", "bigint", "boolean",
       "float", "double", "timestamp", "date", "char", "varchar")