django admin - Gruppenberechtigungen zum Bearbeiten oder Anzeigen von Modellen

8

Ich suche nach einer Möglichkeit, die Django-Administration anzupassen, um Berechtigungen basierend auf der Benutzergruppe zu unterstützen.

Zum Beispiel habe ich gerade die Entwickler-Gruppe erstellt, jetzt habe ich auch das Ticket-Modell mit AdminModel erstellt, um anzugeben, wie Daten aufgelistet werden sollen.

Ich möchte, dass dieses Modell nur für Entwickler sichtbar ist und sich gegenseitig nicht in dieser Gruppe versteckt ist (z. B. die Ansicht anhand von Gruppen filtern). Ich habe viele Dokumentationen gelesen, konnte aber nicht wirklich finden und verstehen, was zu tun ist, damit es funktioniert.

Aus Sicherheitsgründen muss ich auch Benutzergruppen zur Laufzeit überprüfen, wenn ich Objekte für ein bestimmtes Modell (das ich Leuten außerhalb der Entwicklergruppe ausgeblendet habe) hinzufüge - andernfalls müsste es nur die URL kennen um das Modell zu verwenden: s

Es sieht wie eine einfache Aufgabe aus, aber vielleicht verpasse ich etwas ... irgendeine Drittanbieter-Middleware oder nur eine Möglichkeit, es zu tun? Ich bin auch bereit, die Verwaltungsansichten bei Bedarf zu bearbeiten, aber ich muss wissen, was zu tun ist.

Danke: -)

    
Ale A 05.12.2011, 22:27
quelle

1 Antwort

12

ModelAdmin hat drei Methoden, die sich mit Benutzerrechten befassen: has_add_permission , has_change_permission und has_delete_permission . Alle drei sollten boolean ( True / False ) zurückgeben.

Sie könnten also etwas tun wie:

%Vor%

Wenn False von einer dieser zurückgegeben wird, wird 403 Verboten angezeigt.

    
Chris Pratt 05.12.2011, 22:59
quelle

Tags und Links