Flask-Admin Role Based Access - изменение доступа в зависимости от роли
Я взял пример проверки подлинности Flask-Admin сВот и немного изменил.
Я добавил следующий блок в представлении ниже, но он не показывает кнопку экспорта. Я ожидал, что это добавит опцию экспорта к представлениям администратора. Это печатает---superuser
на консоль.
if current_user.has_role('superuser'):
can_export = True
print ' ---- superuser '
Я использовал функцию экспорта много раз раньше. Это будет работать, если я поставлю заявлениеcan_export = True
нижеclass MyModelView(sqla.ModelView):
Я использую это как пример управления доступом к созданию / редактированию / и т.д. на основе роли пользователя. Например, я хочу иметь роль только для чтения, где can_create = False, can_edit = False и т. Д.
Может кто-нибудь помочь? Может кто-нибудь сказать мне, что я делаю не так?
==
Это весь взгляд.
# Create customized model view class
class MyModelView(sqla.ModelView):
def is_accessible(self):
if not current_user.is_active or not current_user.is_authenticated:
return False
if current_user.has_role('superuser'):
return True
return False
def _handle_view(self, name, **kwargs):
"""
Override builtin _handle_view in order to redirect users when a view is not accessible.
"""
if current_user.has_role('superuser'):
can_export = True
print ' ---- superuser '
if not self.is_accessible():
if current_user.is_authenticated:
# permission denied
abort(403)
else:
# login
return redirect(url_for('security.login', next=request.url))
==
Для справки: я поставил весь кодВот.