LINUX.ORG.RU

Flask-Principal как использовать?

 


1

1

нужно создать гибкую ACL

подключил в проект flask-principal, добавил модель Role и связь с пользователем

создал роли там всякие admin/chief/dispatcher/supervision и тд.

понаписал всяких декораторов для представлений типа:

class Mail_View(MethodView):

    decorators = [admin_chief_required]

всё вроде работает, но хочется, чтобы как в Django, когда можно от суперадмина создать группу, дать ей права, затем связывать в группой юзеров, у тут чтобы создать роль нужно лезть в админку, добавлять роли, а затем писать декоратор

да и к админке тоже не больно хорошо этот директор прикручивается

★★

Последнее исправление: fMad (всего исправлений: 1)

Декоратор можно не писать. Во фласке нет админки готовой, описанный функционал надо писать. Принципал дает только готовый способ управления доступом.

Shadow ★★★★★
()

Какую админку используете?

anonymous
()

Во фласке есть админка? Как называется? Она привязана к каким-то конкретным orm/формам я так понимаю?

pawnhearts ★★★★★
()
Ответ на: комментарий от pawnhearts

Нет админки, есть Flask-Admin, к конкретным ORM не привязан.

Shadow ★★★★★
()
Ответ на: комментарий от fMad

Ну а какие проблемы? В principal есть методы типа test, с ними можно красиво организовать доступ. При этом объект описания доступа можно делать как угодно - хочешь, описать роли, хочешь - пермишены, а вот то, как ты будешь заполнять роли - это надо писать.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Shadow

можешь показать?

и ещё такая проблема вылезла, генерирую формы в зависимости от прав: есть форма с малым число полей (как readonly) для гостей затем в конструкторе, в зависимости от прав добавляю новые поля через setattr и всё работает, но только если добавлять аттрибуты для всего класса, а значит что если генерируется класс формы для админа, то и не для админа доступны все поля админа пока решил задачу путём локального определения класса внутри представления, что совсем не красиво. а если делать setattr для локального объекта, то изменения не отображаются, потому что там как то по хитрому инициализурется объект

fMad ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.