mirror of https://github.com/apache/superset.git
Remove redundant has_access definition in superset (#4689)
* update has_access to has_method_access * move has_access to sm and rename to has_method_access
This commit is contained in:
parent
d49a0e7958
commit
e25535c693
|
@ -11,13 +11,13 @@ import logging
|
|||
from flask import flash, Markup, redirect
|
||||
from flask_appbuilder import CompactCRUDMixin, expose
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
from flask_appbuilder.security.decorators import has_access
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
from superset import appbuilder, db, security_manager, utils
|
||||
from superset.connectors.base.views import DatasourceModelView
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.utils import has_access
|
||||
from superset.views.base import (
|
||||
BaseSupersetView, DatasourceFilter, DeleteMixin,
|
||||
get_datasource_exist_error_mgs, ListWidgetWithCheckboxes, SupersetModelView,
|
||||
|
|
|
@ -9,13 +9,13 @@ from flask import flash, Markup, redirect
|
|||
from flask_appbuilder import CompactCRUDMixin, expose
|
||||
from flask_appbuilder.actions import action
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
from flask_appbuilder.security.decorators import has_access
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
from past.builtins import basestring
|
||||
|
||||
from superset import appbuilder, db, security_manager, utils
|
||||
from superset.connectors.base.views import DatasourceModelView
|
||||
from superset.utils import has_access
|
||||
from superset.views.base import (
|
||||
DatasourceFilter, DeleteMixin, get_datasource_exist_error_mgs,
|
||||
ListWidgetWithCheckboxes, SupersetModelView, YamlExportMixin,
|
||||
|
|
|
@ -25,13 +25,7 @@ import zlib
|
|||
import bleach
|
||||
import celery
|
||||
from dateutil.parser import parse
|
||||
from flask import flash, Markup, redirect, render_template, request, url_for
|
||||
from flask_appbuilder._compat import as_unicode
|
||||
from flask_appbuilder.const import (
|
||||
FLAMSG_ERR_SEC_ACCESS_DENIED,
|
||||
LOGMSG_ERR_SEC_ACCESS_DENIED,
|
||||
PERMISSION_PREFIX,
|
||||
)
|
||||
from flask import flash, Markup, render_template
|
||||
from flask_babel import gettext as __
|
||||
from flask_cache import Cache
|
||||
import markdown as md
|
||||
|
@ -653,42 +647,6 @@ def get_email_address_list(address_string):
|
|||
return address_string
|
||||
|
||||
|
||||
def has_access(f):
|
||||
"""
|
||||
Use this decorator to enable granular security permissions to your
|
||||
methods. Permissions will be associated to a role, and roles are
|
||||
associated to users.
|
||||
|
||||
By default the permission's name is the methods name.
|
||||
|
||||
Forked from the flask_appbuilder.security.decorators
|
||||
TODO(bkyryliuk): contribute it back to FAB
|
||||
"""
|
||||
if hasattr(f, '_permission_name'):
|
||||
permission_str = f._permission_name
|
||||
else:
|
||||
permission_str = f.__name__
|
||||
|
||||
def wraps(self, *args, **kwargs):
|
||||
permission_str = PERMISSION_PREFIX + f._permission_name
|
||||
if self.appbuilder.sm.has_access(permission_str,
|
||||
self.__class__.__name__):
|
||||
return f(self, *args, **kwargs)
|
||||
else:
|
||||
logging.warning(
|
||||
LOGMSG_ERR_SEC_ACCESS_DENIED.format(permission_str,
|
||||
self.__class__.__name__))
|
||||
flash(as_unicode(FLAMSG_ERR_SEC_ACCESS_DENIED), 'danger')
|
||||
# adds next arg to forward to the original path once user is logged in.
|
||||
return redirect(
|
||||
url_for(
|
||||
self.appbuilder.sm.auth_view.__class__.__name__ + '.login',
|
||||
next=request.full_path))
|
||||
|
||||
f._permission_name = permission_str
|
||||
return functools.update_wrapper(wraps, f)
|
||||
|
||||
|
||||
def choicify(values):
|
||||
"""Takes an iterable and makes an iterable of tuples with it"""
|
||||
return [(v, v) for v in values]
|
||||
|
|
|
@ -19,7 +19,7 @@ from flask import (
|
|||
from flask_appbuilder import expose, SimpleFormView
|
||||
from flask_appbuilder.actions import action
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
from flask_appbuilder.security.decorators import has_access_api
|
||||
from flask_appbuilder.security.decorators import has_access, has_access_api
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
import pandas as pd
|
||||
|
@ -46,7 +46,7 @@ import superset.models.core as models
|
|||
from superset.models.sql_lab import Query
|
||||
from superset.sql_parse import SupersetQuery
|
||||
from superset.utils import (
|
||||
has_access, merge_extra_filters, merge_request_params, QueryStatus,
|
||||
merge_extra_filters, merge_request_params, QueryStatus,
|
||||
)
|
||||
from .base import (
|
||||
api, BaseSupersetView, CsvResponse, DeleteMixin,
|
||||
|
|
Loading…
Reference in New Issue