Я хотел бы различать доступ к представлениям (индексировать, создавать, редактировать) в flask-admin. Это можно сделать на уровне всех представлений, касающихся конкретной модели, путем переопределения метода: is_accessible.
def is_accessible(self):
return current_user.is_authenticated # using flask-login
Мне нужно, чтобы некоторые пользователи могли просматривать данные, но без разрешения создавать новые записи. С другой стороны, другие пользователи должны иметь возможность создавать и редактировать записи. Любая помощь будет оценена.
Решение
Я переопределил метод _handle_view, который вызывается перед каждым представлением.
def _handle_view(self, name, **kwargs):
if not current_user.is_authenticated:
return self.unauthorized_access()
permissions = self.get_permissions(name)
if not current_user.can(permissions):
return self.forbidden_access()
return None #access granted