Разрешения на уровне объектов Django 1.2 - сторонние решения?

Поскольку окончание Django 1.2 почти отсутствует, мне любопытно, есть ли проекты, которые используют систему разрешений на уровне другого уровня/уровень уровня. Django-authority, который является возможным решением для Django до 1.1, не обновлялся какое-то время и еще не использует новая система разрешений. Мне кажется, что Django-authority находится в коматозном состоянии.

Знает ли кто-нибудь о предстоящих или даже готовых решениях? Я бы очень признателен за хорошие ссылки на активные проекты, по крайней мере, с некоторым загружаемым контентом.

Ответ 2

Я использовал https://github.com/lukaszb/django-guardian, когда он был еще в версии 0.2 в проекте, и был довольно полным и без ошибок.

Да, мне пришлось написать свой собственный декодер вида check_permission, как в то время, когда он еще не включил его, но, по крайней мере, из версии 1.0 он есть.

Автор также очень быстро ответил на вопрос, который я перенес с 0.2 - в целом я был доволен этим и, следовательно, сделал его частью моего шаблона скелета проекта.

Ответ 3

Я выпустил Django-приложение под названием django-rules, которое позволяет управлять разрешениями каждого объекта гибким, динамичным и масштабируемым способом. Вы можете проверить это.

Ответ 4

Я попытался использовать django-granular-permissions для сайта некоторое время назад, но не смог заставить его делать то, что мне нужно (это может были моей собственной неспособностью понять, что мне нужно сделать, а не приложение). Глядя на вкладку обновлений сайта Google Code, похоже, что с лета/осени в прошлом году не было сделано никакой работы, так что это может быть еще одна мертвая утка.

Ответ 5

OSU Open Source Labs имеет реализацию разрешений уровня объекта здесь

Ответ 6

Прежде всего, основным источником информации является djangopackages.com perms grid: "Сетка всех пакетов, реализующих разрешения для пользователей и групп в вашем проекте Django". (Остерегайтесь, что некоторые пакеты называются очень похожими, например, "s" или тире - единственная разница)

Затем, рассматривая каждую функциональность пакета (учитывая только несколько активно поддерживаемое подмножество), это основные кандидаты:

  • django-guardian: "реализация разрешений для каждого объекта в качестве базы данных авторизации, поддерживаемой с Django 1.2". pypi, repo, docs.

  • django-permissions: "Общие разрешения для каждого объекта для Django". "django-permissions предоставляет разрешения для каждого объекта для Django для ролей". pypi, оригинальное репо, наиболее обновленная версия, docs.

  • django-authority: "предоставляет общие разрешения для каждого объекта для приложения Django auth." "Приложение Django для разрешений для каждого объекта, которое включает кучу помощников для создания пользовательских проверок разрешения". pypi, оригинальное репо, наиболее обновленная версия, docs.

Есть и другие, которые по той или иной причине не сделали разреза:

PS: Этот ответ был написан в соответствии с текущим состоянием пакетов с открытым исходным кодом, через 2 года после того, как был задан вопрос. Хотя я не слишком тщателен, надеюсь, что эта работа поможет тем, кто был в той же ситуации, что и я.