Форум сайта python.su
Я думаю, довольно частая задача: одним пользователям должна быть видна одна кнопка, другим не показываются какие-то урлы, третьим не показывается какой-то пункт меню. Как обычно это делают? Использовал модуль Flask-Principal, но он особо не впечатлил. Приходится в середине кода вьюхи писать условия прав доступа, затем писать код в шаблоне, чтобы линк или кнопка не отображались. И это только для одной группы пользователей. Может я просто его неправильно готовлю?
Офлайн
Я пишу условия внутри вьюхи, если нужны небольшие изменения, не предусмотренные изначальными требованиями.
Если дошло до рефакторинга кода или только идет процесс создания системы, выделяю код, требующих особых прав доступа в отдельные вьюхи и использую декораторы типа
@editor.require(http_exception=403)
my_editor = RoleNeed('editor') editor = Permission(be_editor) @app.route('/edit') @editor.require(http_exception=403) def editor(): return render_template('template.html')
Офлайн