2010-11-24 20 views
1

Ich mache ein neues Projekt in symfony1.4. In diesem Projekt müssen sich Benutzer nun anmelden und durchsuchen, und jedes Projekt dieses Typs erfordert eine Möglichkeit, Benutzer basierend auf Rollen zu beschränken. Ich möchte dies nicht in naheliegender Weise implementieren, d. H. Rollenattribute für jeden Benutzer haben und vordefinierte Rollen haben und diese den Benutzern zuweisen. Das Problem dabei ist, dass es nicht sehr flexibel ist, da später mehr Rollen definiert werden.Benutzerrollen erstellen

Ich dachte über die Verwendung eines EAV-Modells nach (nicht sicher, dass ich das in symfony machen kann). Was ihr denkt, habt ihr bessere Vorschläge, um Benutzerrollen viel flexibler zu machen, wenn sie hinzugefügt oder gelöscht werden.

Auch, was ist die beste Möglichkeit, die Seite basierend auf Benutzerrollen anzuzeigen, wie ich einige Elemente nach den Rollen ausgeblendet werden soll. Sollte ich die Rolle auf jeder Seite vergleichen und Elemente auf jeder Seite ausblenden? Gibt es eine bessere Lösung?

Bitte werfen Sie etwas Licht auf diese.

Dank

Antwort

2

The sfDoctrineGuard Plugin (http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin) ist eine ziemlich umfassende Weise der Benutzerauthentifizierung, Gruppen und Anmeldeinformationen zu verarbeiten. Benutzer können entweder einzeln oder als Gruppe Berechtigungen festlegen, und der Zugriff auf bestimmte Seitenbereiche oder ganze Aktionen kann basierend auf diesen Berechtigungen eingeschränkt werden. Sie können neue Benutzeranmeldeinformationen im Controller-Code selbst festlegen, z.

<?php 
$this->getUser()->setCredential('editor'); 
?> 

und stellen Sie sicher, dass ein Benutzer bestimmte Berechtigungen in Aussicht hat:

<?php 
if ($sf_user->hasCredential('editor')) { 
    // stuff only for editors 
} 
?> 

Diese Seite hat viele zusätzliche Informationen über das Plugin nicht von der Readme-Datei abgedeckt - http://trac.symfony-project.org/wiki/sfGuardPluginExtraDocumentation (obwohl es bezieht sich eher auf Propel als Lehre). Auch die folgende Reihe von kurzen Tutorials ist ziemlich nützlich:

http://www.finalconcept.com.au/article/view/symfony-user-management-sfdoctrineguard-installation

http://www.finalconcept.com.au/article/view/symfony-user-management-sfdoctrineguard-administration

http://www.finalconcept.com.au/article/view/symfony-user-management-sfdoctrineguard-securing-actions

Und die Symfony Tutorial Seite auf Benutzer:

http://www.symfony-project.org/jobeet/1_4/Doctrine/en/13

+1

Vereinbart, dass sfDoctrineGuradPlugin ist wahrscheinlich der Weg zu gehen. Das einzige Problem hier ist, dass es das Caching von Anmeldeinformationen, das behoben werden kann, ärgerlich macht. –

Verwandte Themen