Wie kann ich andere Benutzer oder Rollenberechtigungen in der Vorlage überprüfen? symfony2

7

Ich erstelle diesen Benutzermanager, in dem Administratoren die Berechtigung einer Gruppe oder eines Benutzers ändern können. Ich möchte das FOS-Benutzerpaket nicht verwenden, weil ich viele anpassen möchte.

Ich habe herausgefunden, dass ich einem anderen Benutzer im Controller Berechtigungen erteilen kann, aber wie kann ich die Berechtigungen eines anderen Benutzers / einer anderen Rolle lesen? Und ist es möglich, diese Berechtigungen eines anderen Benutzers / einer anderen Rolle in der Vorlage zu lesen?

Der ideale Weg, ich würde das gerne tun: (eine Seite, um Benutzer in einer Gruppe und die Berechtigungen zu sehen)

1 Holen Sie alle Objekte und Benutzer in den Controller

2 Drucken Sie die Benutzer und Objekte in der Vorlage. Drucken Sie neben den Objekten die Berechtigungen dieser Gruppe: VIEW EDIT DELETE OWNER ..

Und das gleiche für einen Benutzer (nicht die aktuelle), ich möchte in der Lage sein, die Erlaubnis eines Benutzers (nicht der aktuelle) in der Vorlage zu überprüfen. Auf einem bestimmten Objekt / Klasse ..

Ich weiß, wie man überprüft, ob ein Benutzer eine Rolle / Gruppe hat, aber ich möchte wissen, welche Berechtigungen die Gruppe / der Benutzer hat, wie EDIT VIEW DELETE usw. mit ACL.

Wie kann ich das erreichen?

    
Arazu 13.04.2013, 17:47
quelle

2 Antworten

3

Ich habe endlich einen Weg gefunden, dies zu tun, es ist wahrscheinlich nicht die effizienteste Art, dies zu tun, aber es funktioniert und ist die einzige Möglichkeit, dies zu tun, da niemand weiß, wie man das bis jetzt erreichen kann.

Zuerst habe ich einen Standardbenutzer für jede Gruppe, der sich nicht anmelden kann (ein Dummy-Benutzer mit den Standardberechtigungen für die Gruppe) - Ich erhalte die Sicherheits-ID für den Standardbenutzer:

%Vor%

Ich erstelle ein Array von Permisisons, um nach einigen leeren Arrays zu suchen und diese zu setzen, und lade den problematic.acl_manager

%Vor%

Dann durchlaufe ich die Objekte, für die ich die Berechtigung prüfen möchte, und überprüfe die Berechtigungen, die ich zuvor in $ permissionsToCheck var gesetzt habe. Ich überprüfe die Berechtigungen für den Standardbenutzer. Das Ergebnis wird in ein Array geschrieben, das ich an die Vorlage sende.

%Vor%

Die checkPermissions-Funktion gibt ein Array der Berechtigungen und einiger Dinge aus dem angegebenen Objekt zurück.

%Vor%

Nach dem POST des Formulars überprüfe ich, welches Objekt seine Berechtigungen geändert hat. Wenn dies der Fall ist, durchlaufe ich alle Benutzer in der Gruppe. Entziehen Sie für jeden Benutzer Berechtigungen und rufen Sie dann alle Gruppen ab (Standardbenutzer für die Gruppe). Überprüfen Sie die Berechtigungen pro Gruppe (Standardbenutzer), überprüfen Sie, welche Berechtigungen aktiviert werden sollen, und geben Sie dem Benutzer die korrekten Berechtigungen.

Hier setze ich alle Berechtigungen auf false und durchlaufe dann alle Rollen / Gruppen (Standardbenutzer) und sehe, ob die Berechtigung gesetzt werden sollte.

%Vor%

Danach weiß ich, welche Rechte der Benutzer haben sollte und gebe dann dem Konto alle Rechte:

%Vor%     
Arazu 13.05.2013, 09:22
quelle
25

Mit der Funktion is_granted

%Vor%

Abrufen des aktuellen Benutzerrollen-Arrays in Zweig:

%Vor%

Wenn Sie aus einer Sammlung von Benutzern anzeigen möchten, können Sie so etwas tun (vorausgesetzt, dass die Sammlung als Benutzer übergeben wurde)

%Vor%     
Ghassan Idriss 13.04.2013 19:54
quelle

Tags und Links