2015-10-15 6 views
11

Ich wollte django-guardian verwenden, bis ich auf die folgenden in der offiziellen Dokumentation kam:Wie man heutzutage in Django mit Objektrechten umgehen kann?

https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#handling-authorization-in-custom-backends

Berechtigungen können nicht nur nach der Art des Objekts, sondern auch pro spezifische Objektinstanz festgelegt werden. Mithilfe der Methoden has_add_permission(), has_change_permission() und has_delete_permission(), die von der ModelAdmin-Klasse bereitgestellt werden, können Berechtigungen für verschiedene Objektinstanzen desselben Typs angepasst werden.

Bedeutet das, dass Django-Guardian mit neueren Versionen von Django nicht mehr benötigt wird?

Bitte klären Sie.

+2

Diese Methoden sind nicht neu. Und beachte, dass sie nur für den Administrator gelten. –

+0

In Verbindung stehend: https://Stackoverflow.com/a/33247890/2586761 – ptim

Antwort

13

In der Tat, während des Lesens der Dokumente, war ich aufgeregt, dass Django für "pro Objekt Berechtigungen überprüfen" out of the box, especially in the admin, und es wäre eine Frage der Zeit zu verstehen, wie ich es aktivieren könnte.

jedoch this does not seem to always be the case.

Django undoubtedly strives bieten die Gründe (API) für eine solche Implementierung, aber diese Implementierung erfordert manchmal gute Programmierkenntnisse und Django Verständnis.

Es ist der Entwickler, der diese Tools von creating the app zusammenbringt, die seinen Bedürfnissen entspricht. Dies könnte entweder einfach oder ... nicht so einfach sein! Diese widersprüchlichen Informationen bilden die Basis für mein Web-Crawling, das sich darauf konzentriert, eine Lösung für das Problem "pro Objekt Berechtigungen" zu finden, irgendwie ... effektiv für die Bedürfnisse meines Projekts oder Maßstabs und natürlich meine eigenen Programmierfähigkeiten und Django bis jetzt verstehen.

Django-guardian scheint die robusteste, vollwertige, ausgewachsene Anwendung für diesen Zweck zu sein.

Es gibt auch andere more lightweight django applications, die spezifische Anforderungen erfüllen, die auch produktionsstabil sind.

Während versuchen, in dieser irgendwie kniffligen Aufgabe über die Runden zu kommen, lehne ich mich in Richtung django-rules für seine einfache und konzentrierte auf meine Bedürfnisse funktioniert.

Verwandte Themen