Wie kann ich überprüfen, anderen Benutzern oder Rollen Berechtigungen in der Vorlage? symfony2
Baue ich diese Benutzer-manager, wo können Administratoren die Berechtigung ändern für eine Gruppe oder einen Benutzer. Ich don ' T wollen, verwenden Sie die FOS-Benutzer-bundle, weil ich Sie anpassen möchten viel.
Fand ich heraus, dass ich kann geben Sie Berechtigungen für einen anderen Benutzer in den controller, aber wie kann ich Lesen Sie die Berechtigungen der anderen Benutzer/Rolle? Und ist es möglich diese zu Lesen-Berechtigungen eines anderen Benutzers/der Rolle in der Vorlage?
Idealer Weise würde ich mag, dies zu tun ist:
(a-Seite ein, um Benutzer in einer Gruppe und die Berechtigungen)
1 Bekommen alle Objekte und Benutzer, in der Steuerung
2 Drucken Sie die Benutzer und Objekte in der Vorlage. Neben den Objekten, drucken Sie die Berechtigungen für diese Gruppe: ANZEIGEN, BEARBEITEN, LÖSCHEN, BESITZER..
Und das gleiche für einen Benutzer(nicht das aktuelle), ich möchte in der Lage sein, überprüfen Sie die Berechtigung eines Benutzers(nicht der aktuellen) in der Vorlage. Auf ein bestimmtes Objekt/Klasse..
Ich weiß, wie um zu überprüfen, ob ein Benutzer einer Rolle/Gruppe, aber ich möchte wissen, welche Berechtigungen der Gruppe/Benutzer-hat, wie der BEARBEITEN-ANSICHT LÖSCHEN etc. mit ACL.
Wie kann ich das erreichen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie prüfen, ob der aktuelle Benutzer eine Rolle, die von Zweig mit der Funktion
is_granted
Immer die aktuelle Benutzer-Rollen-array in twig:
Wenn Sie wollen, um anzeigen aus einer Sammlung von Benutzern, die Sie tun können, so etwas (vorausgesetzt, Sammlung übergeben als Benutzer)
Ich endlich einen Weg gefunden, um dies zu tun, es ist wahrscheinlich nicht der effizienteste Weg, dies zu tun, aber es funktioniert und das ist die einzige Möglichkeit, die ich kenne, dies zu tun, da niemand weiß, wie dies zu erreichen bis jetzt.
Habe ich zunächst ein Standard-Benutzer für jede Gruppe, die sich nicht anmelden können( ein dummy-Benutzer mit den Standard-Berechtigungen für die Gruppe ) - bekomme ich die Security-ID des default user:
Erstelle ich ein array von permisisons zu überprüfen, und legen Sie einige leere arrays, und laden Sie das problematisch.acl_manager
Dann habe ich eine Schleife durch die Objekte, die ich möchten zu prüfen die Berechtigung für, und überprüfen Sie die Berechtigungen habe ich gesetzt, bevor Sie in der $permissionsToCheck var. Ich überprüfe die Berechtigungen für die Standard-Benutzer. Das Ergebnis wird in einem array, dass ich senden Sie die Vorlage.
Den checkPermissions Funktion gibt ein array mit den Berechtigungen und einige Sachen, die ich brauche aus dem Objekt gegeben.
Nach dem POSTEN des Formulars überprüfe ich, was für ein Objekt hat seine Berechtigungen geändert, Wenn ja, habe ich eine Schleife durch alle Benutzer in der Gruppe. Für jeden Benutzer,Berechtigungen aufheben,dann bekommen alle Gruppen( Standard-user für die Gruppe ). überprüfen Sie pro Gruppe(Standard-Nutzer) die Erlaubnis, zu überprüfen, welche Berechtigungen zu aktivieren, und geben Sie dem Benutzer die richtigen Berechtigungen.
Hier habe ich alle Berechtigungen auf "false" und dann eine Schleife durch alle Rollen/Gruppen(Standard-user) und finden Sie unter wenn die Berechtigung gesetzt werden soll.
Nachdem dies weiß ich, welche Rechte ein Benutzer haben sollte, und dann geben Sie dem Konto alle Rechte: