Декоратор для SecurityManager в конструкторе приложений flask для superest

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

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

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

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

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

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


person Sayat Satybald    schedule 23.05.2018    source источник


Ответы (1)


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

# 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
person dmigo    schedule 24.05.2018