2017-03-05 1 views
0

Ich möchte die grundlegende Idee Richtlinie kennen.Wie man das SonataAdminBundle für Admin und Manager umleiten kann

I Einheit jetzt von SonataAdminBundle leite und sich daran gewöhnen. Ich möchte Fortschritte machen. Ich habe Tabelle/Entität wie diese

Ich möchte von sonataadminbundle

[zum Beispiel]

beide admin und Benutzer bearbeiten die Entität machen.

Id |User | data 
1 |bear | sarmon 
2 |dog | meat 
3 |monkey| banana 
4 |bear | peanuts 
5 |dog | corn 

Natürlich I (admin) können Unternehmen aus admin_dashboard von SonataAdminBundle bearbeiten.

Allerdings möchte ich Benutzer-Bär 'bearbeiten nur 1 und 4 Zeilen lassen.

Wenn ich Edit/Update/list Skript von Grund auf in-Controller machen. Es ist einfach zu erreichen.

Aber ich denke, es wie nutzlos Arbeit ist, weil SonataAdminBundle besser UI hat, als ich von Grund auf neu zu machen.

Also, Weiß jemand, den geeigneten Weg für diese Art von Ideen ?? oder es ist eine schlechte Idee, SonataAdminBundle für Benutzer und Admin zu verwenden?


Ich möchte Benutzer Bär sehen nur tragen verwandte Tabellen wie.

Id |User | data 
1 |bear | sarmon 
4 |bear | peanuts 

Zuerst habe ich diesen Code habe Schwierigkeiten mit public function configureListFields(ListMapper $listMapper) jedoch nur einmal aufgerufen wird. Ich kann die richtige Antwort nicht finden.

Also ich denke, ich muss diese Art von Code woanders setzen.

if ($user == bear){ 
array_push($table,$line); 
} 
else { 
} 

Antwort

1

Es ist völlig in Ordnung, den AdminBundle für einen Benutzer und einen privilegierten Benutzer gleichzeitig zu verwenden. Sie können leicht die Admin fragen, ob der aktuelle angemeldete Benutzer die Zeilen 1 oder 4

Zum Beispiel bearbeiten erteilt wurde, könnten Sie verwenden:

protected function configureFormFields(FormMapper $mapper) 
{ 
    /* either identify your custom rows here or via ACL/ROLES */ 
    if (!$this->isGranted('EDIT')) { 
     // not allowed 
    } 
} 

Für Sicherheitsbedenken (und je nach Nutzung (-case), beachten Sie bitte, dass dies Ihre nicht-privilegierten Benutzer nicht daran hindert, diese Entitäten anzuzeigen/aufzulisten (da das obige Beispiel nur die Formular-/Editiermaske außer Kraft setzt). Natürlich können Sie diesen Methoden auch Logik hinzufügen.

Abhängig von Ihrem Sicherheitshandler können Sie alles verwenden, was von Symfony unterstützt wird (Rollen, ACL, ...). Bitte werfen Sie einen Blick auf, wie Sie es auf Ihre Bedürfnisse hier konfigurieren: https://sonata-project.org/bundles/admin/3-x/doc/reference/security.html

+0

Vielen Dank für die mir Grundgedanken und versichert. Ich werde Schritt für Schritt umsetzen !! – whitebear

+0

gern geschehen :-) –

+0

Ich habe dieses Dokument gelesen. Aber es ist ein bisschen was ich machen wollte. Ich habe den Artikel hinzugefügt. Könntest du etwas Hilfe geben, wenn möglich? – whitebear

Verwandte Themen