2010-05-12 13 views
11

Da Django 1.2 final fast out ist, bin ich neugierig, ob es bereits Projekte gibt, die das neue Berechtigungssystem auf Objektebene/Zeilenebene verwenden. Django-authority, die eine mögliche Lösung für Django bis 1.1 ist, wurde für eine Weile nicht aktualisiert und verwendet (noch) nicht das neue Berechtigungssystem. Es scheint mir, dass Django-Authority in einem komatösen Zustand ist.Django 1.2 Objektebene Berechtigungen - Lösungen von Drittanbietern?

Kennt jemand über bevorstehende oder vielleicht sogar fertige Lösungen? Ich würde mich über gute Links zu aktiven Projekten mit mindestens einigen herunterladbaren Inhalten sehr freuen.

+0

Eine weitere nette Lösung gefunden: https://github.com/lukaszb/django-guardian - scheint auch mit Django 1.3 zu arbeiten! – mawimawi

Antwort

7

Schließlich fand ich wirklich gute Sachen: Florian Apolloner schrieb ein Howto auf djangoadvent: http://djangoadvent.com/1.2/object-permissions/ Jetzt das ist, was ich bin gonna verwenden :)

Etwas Nützliches könnte genauso gut sein: http://github.com/washingtontimes/django-objectpermissions (Link tot als 2011-07-18)

+0

Ich lese Florian's Beitrag, und während es informativ ist, scheint es keine Gruppenberechtigungen zu unterstützen. Wenn beispielsweise einer Gruppe die Berechtigung für ein Objekt erteilt wird (wird dies auch im Beispiel von Florian unterstützt), haben Benutzer in dieser Gruppe eine Berechtigung für das Objekt? – millerdev

+0

für mein Projekt brauchte ich keine Gruppenberechtigungen. In jedem Fall müssen Sie es selbst implementieren. aber vielleicht gibt es schon eine andere Django-App da draußen - ich habe einige Monate nicht nachgesehen. – mawimawi

1

Ich habe versucht, django-granular-permissions für eine Website vor einer Weile, war aber nicht in der Lage, es zu tun, was ich brauchte (das könnte meine eigene Unfähigkeit zu verstehen, was ich tun musste, anstatt die App). Wenn man sich den Tab der Google-Code-Website anschaut, sieht es so aus, als hätte es seit Sommer/Herbst letzten Jahres keine Arbeit mehr daran getan, also könnte es eine weitere tote Ente sein.

+0

auch scheint das Projekt umgezogen zu sein: http://github.com/ryates/django-granular-permissions-redux – hop

5

Ich habe eine Django-App namens django-rules veröffentlicht, mit der Sie per Objektberechtigungen flexibel, dynamisch und skalierbar verwalten können. Vielleicht möchten Sie es überprüfen.

9

Ich verwendete https://github.com/lukaszb/django-guardian, als es noch in Version 0.2 auf einem Projekt war und es war ziemlich komplett und fehlerfrei.

Ja, ich musste meinen eigenen 'check_permission' View Decorator schreiben, als es noch nicht enthalten war - aber zumindest ab Version 1.0 ist es da.

Der Autor war auch sehr schnell auf ein Problem zu reagieren, das ich von 0,2 migriert hatte - insgesamt war ich damit zufrieden und machte es daher Teil meines Projekts Skelett Vorlage.

1

OSU Open Source Labs hat eine Implementierung von Objektebene Berechtigungen here

1

Vor allem die Hauptinformationsquelle ist djangopackages.com's perms grid: „Ein Raster aller Pakete Berechtigungen für Benutzer und Gruppen in Ihrem Django-Projekt der Umsetzung“. (Vorsicht, einige Pakete sind sehr ähnlich benannt, z. B. ein "s" oder ein Bindestrich ist der einzige Unterschied)

Dann Überprüfung jedes Paket Features (unter Berücksichtigung nur die etwas aktiv beibehaltene Teilmenge), sind diese die wichtigsten Kandidaten:

  • django-Wächter: „Umsetzung pro Objektberechtigungen als Berechtigungs Backend, die seit Django 1.2 unterstützt wird.“ pypi, repo, docs.

  • django-Berechtigungen: "Generische Per-Objekt-Berechtigungen für Django". "Django-permissions bietet per-Objekt-Berechtigungen für Django auf Rollen". pypi, original repo, most updated fork, docs.

  • django-Behörde: „liefert allgemeine pro-Objekt-Berechtigungen für Djangos Auth App.“ „Django App für pro-Objekt-Berechtigungen, die eine Reihe von Helfern umfasst kundenspezifische Berechtigungsprüfungen erstellen“ pypi. original repo, most updated fork, docs.

Es gibt andere, die für einen oder anderen Grund nicht geschafft haben:

PS: Diese Antwort geschrieben wurde nach dem aktuellen Stand der Open-Source-Pakete, mehr als 2 Jahre nach Die Frage wurde gestellt. Obwohl nicht zu gründlich, hoffe ich, dass diese Arbeit denjenigen helfen wird, die in derselben Situation sind wie ich.

Verwandte Themen