Декоратор для SecurityManager в флешке appbuilder для суперстере - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь добавить пользовательский поиск информации о пользователях из OAuth в надмножестве, которое основано на flask-appbuilder.

Официальный документ предоставляет следующую информацию:

Украсьте свой метод с помощью декоратора SecurityManager oauth_user_info_getter.Сделайте так, чтобы ваш метод принимал точные параметры, как в этом примере, а затем возвращает словарь с полученной пользовательской информацией.

http://flask -appbuilder.readthedocs.io / en / latest / security.html # authentication-oauth

Пример в документе также не сильно помогает, поскольку в комментариях был указан декоратор.

Я гдепоставить кастом декоратор в суперсет?Я поместил пользовательский декоратор в superset_config.py, но у меня не получилось.

1 Ответ

0 голосов
/ 24 мая 2018

Подход, который я использую, сводится к следующему:

# For superset version >= 0.25.0

from superset.security import SupersetSecurityManager


class CustomSecurityManager(SupersetSecurityManager):

     def __init__(self, appbuilder):
         super(CustomSecurityManager, self).__init__(appbuilder)

     def whatever_you_want_to_override(self, ...):
         # Your implementation here


CUSTOM_SECURITY_MANAGER = CustomSecurityManager


# For superset version < 0.25.0
from flask_appbuilder.security.sqla.manager import SecurityManager


class CustomSecurityManager(SecurityManager):

     def __init__(self, appbuilder):
         super(CustomSecurityManager, self).__init__(appbuilder)

     def whatever_you_want_to_override(self, ...):
         # Your implementation here


CUSTOM_SECURITY_MANAGER = CustomSecurityManager
...