- Code: Alles auswählen
- if(isset($allowedActions[low($this->name)]))
{
$controllerActions = $allowedActions[low($this->name)];
foreach ($user['Group'] as $group => $value)
{
if(isset($controllerActions[low($this->action)]) && in_array($value['id'], $controllerActions[$this->action]))
{
return true;
}
}
}
$this->Session->setFlash(__('Keine Berechtigung', true), 'default', array(), 'error');
$this->redirect("index");
return false;
Da brauchen wir nicht zu diskutieren, das funktioniert wie gewünscht.
Nur gibt es ein Problem: Ruft der Benutzer eine Aktion auf zu der er nicht berechtigt ist, erfolgt der Redirect, das ist OK, aber die Nachricht wird nicht ausgegeben. Sie wird erst beim zweiten Versuch ausgegeben. Und umgekehrt, wenn man dann eine erlaubte Aktion durchführt, wird die Nachricht trotzdem angezeigt und ist auch wieder beim zweiten mal weg.
Kann mir jemand sagen, was da noch falsch läuft?