Yet another object level permissions Сергей Лихобабин Руководитель отдела внутренней разработки
Коротко обо мне Руководитель отдела внутренней разработки в Mail.Ru Group Более трех лет занимаюсь разработкой внутренних и инфраструктурных проектов компании
Какую проблему решаем? Почему не готовое решение? Как устроен django-protector? Как использовать или адаптировать для своего приложения? Object-level permissions
Чего не хватало? Назначение прав на уровне объекта Управление видимостью объектов Иерархии объектов Группы в разных моделях/таблицах
Полиморфные связи
Django-guardian Права на уровне объектов Интеграция с админкой
Django-protector Хорошая производительность на списках объектов Простая интеграция Замещает стандартную систему прав
Иерархии объектов
Роли в группах Возможность давать право «подгруппе» внутри группы У пользователя может быть несколько ролей одновременно
Глобальные права Право на все объекты определенного типа Право на группу обладателям роли в этой группе
Иерархии объектов Ограничение распространяется на все объекты вниз по иерархии Изменение ограничения затрагивает все объекты иерархии Ограничения на поддерево
Иерархии объектов
Интеграция с Django Mixin и Queryset для ограниченных объектов Прозрачная работа с ORM
Интеграция с Elasticsearch Невозможно фильтровать внутри движка Проблемы при большом количестве ограниченных объектов
Спасибо за внимание