You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2018/03/30 00:54:14 UTC
[incubator-superset] branch master updated: Remove redundant
has_access definition in superset (#4689)
This is an automated email from the ASF dual-hosted git repository.
johnbodley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push:
new e25535c Remove redundant has_access definition in superset (#4689)
e25535c is described below
commit e25535c693c99f6f58e6193dcbf9b96d0aa7e0a1
Author: timifasubaa <30...@users.noreply.github.com>
AuthorDate: Thu Mar 29 17:54:11 2018 -0700
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
---
superset/connectors/druid/views.py | 2 +-
superset/connectors/sqla/views.py | 2 +-
superset/utils.py | 44 +-------------------------------------
superset/views/core.py | 4 ++--
4 files changed, 5 insertions(+), 47 deletions(-)
diff --git a/superset/connectors/druid/views.py b/superset/connectors/druid/views.py
index 02b8cb4..d5401ca 100644
--- a/superset/connectors/druid/views.py
+++ b/superset/connectors/druid/views.py
@@ -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,
diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py
index 16a218f..e3fb14d 100644
--- a/superset/connectors/sqla/views.py
+++ b/superset/connectors/sqla/views.py
@@ -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,
diff --git a/superset/utils.py b/superset/utils.py
index 4163739..828111f 100644
--- a/superset/utils.py
+++ b/superset/utils.py
@@ -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]
diff --git a/superset/views/core.py b/superset/views/core.py
index d155fa3..91a420a 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -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,
--
To stop receiving notification emails like this one, please contact
johnbodley@apache.org.