Deshalb annotiert man den Controller oder einzelne Actions mit Attributen, die angeben, wer zugreifen darf.
Kann man machen. Z.B. so
if( $self->param('delete') ){
$self->auth() or return;
# ab hier liegt die Bestätigung
# der Berechtigung vor
}
Wobei auf die Attribute, z.B. der Name des Realm oder der Name der Passwortdatei nur in der Methode auth() zugegriffen wird. Die Attribute selbst sind außerhalb vom Code konfigurierbar und schließlicch ist auth() eine Methode die nur bei Bedarf, also erst wenn sie aufgerufen wird, kompiliert wird.
Aber noch besser ist es, den Code völlig frei und unabhängig von Berechtigungen zu haben. Was sich dann auch in den Namen der Klassen zeigt like Admin::Article, Public::Article
MfG