Нужно больше, чем один требуется в основной колбе
Я использую флягу принципала, последняя версия Flask-Principal (0.4.0)
У меня есть определенный URL-адрес, например, gpsData, отчеты, запись и т. Д.
отдельный маршрут может быть просмотрен несколькими пользователями
URL ------------ Роль
gpsData - админ, репортер, клиент
отчеты - админ, репортер
запись - администратор, клиент, data_entry
например
@login_module.route('/gpsData')
@admin.require()
@reporter.require()
@client.require()
def gpsData():
return "only admin, reporter and client can view"
@login_module.route('/reports')
@admin.require()
@reporter.require()
def reports():
return "only admin and reporter can view"
@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
#identity.provides.add(RoleNeed('report'))
identity.provides.add(RoleNeed(identity.id))
Кажется, работает только одно требование за раз, как в этом случае "reporter.require" работает только. Если вы вошли в систему с использованием идентификатора администратора, это приведет к ошибке.
Обновить:
Также в шаблоне я просто хочу показать URL-адреса, которые могут быть просмотрены только определенной ролью пользователя.
1 ответ
Вы пытались использовать союз?
admin_reporter_permission = admin_permission.union(reporter_permission)