Mh, da musst du wohl mal ein bisschen Code zeigen.
Aber die bestehenden Frameworks kommen auch meist mit einem Authentication Modul daher, haben das auch also "irgendwie" implementiert. Ich habe jetzt keine Lust mir da die Implementierungen reinzuziehen, da dort meist noch eine recht komplexe ACL im Hintergrund arbeitet (Rechte, Rollen, Gruppen).
Generell sollte das Authentication-Modul aber eifnach einen user entgegennehmen und seine berechtigungen prüfen und zurückgeben.
Im Controller selber rufst du dieses Modul dann entweder
A) im Konstruktor auf
B) in einer bestimmten Methode (um diese nur für bestimmte User erreibar zu machen)
Mal nen kurzer Pseudocode wo die User-Klasse direkt diese Aufgabe übernimmt (so solltest du das nicht machen):
PHP:
<?php
class AdminController extends Controller
{
public function __construct($user)
{
if (!$user->isAuthenticated()) {
throw new Exception('Not authenticated');
}
// ...
}
// ...
}
$user = UserFactory::createFromSession();
$controller = new AdminController($user);
Das führt mich aber direkt dazu anzumerken, dass es dort nicht sinnvoll ist eine Exception(=Ausnahme) zu werfen, da es ja keine Uasnahme ist. Es heißt lediglich, dass der User etwas machen will, wozu er nicht berechtigt ist. Das gehört doch durchaus zum Normalverhalten oder nicht?