Generell kann entweder die Controller-Action selber auf das Userobjekt zugreifen und so Berechtigungen übeprüfen
Wie kann ich mir das vorstellen. Einfaches anwendungsbespiel (Hardcoden) reicht mir voll und ganz.
Wenn im Controller Zugriff auf das Benutzerobjekt besteht, könnte zB ein AuthorizationChecker die Rechteüberprüfung basierend auf dem aktuellen Benutzer vornehmen. Im Symfony-Framework sieht das beispielsweise so aus:
<?php
class ExampleController
{
public function secureAction()
{
if (!$this->get('security.authorization_checker')->isGranted('ROLE_USER')) {
throw new \Exception('Access Denied.');
}
// [...]
}
}
oder die Controller-Actions haben Metadaten (wobei ich den Namen eher schlecht finde, um Rechte abzubilden);
Das gleiche gilt auch hier. Einfaches Hardcoden bitte.
Beispiel vom jms/security-extra-bundle
:
<?php
use JMS\SecurityExtraBundle\Annotation\PreAuthorize;
class ExampleController
{
/** @PreAuthorize("hasRole('ROLE_USER')) */
public function secureAction()
{
// [...]
}
}
LG andaris