Ich habe das folgende Plugin (https://github.com/CakeDC/users) für CakePHP verwendet, aber ich kann nicht herausfinden, wie man die Berechtigungen dafür arbeiten. Ich habe alle Anweisungen befolgt, aber es scheint, dass authorize
überhaupt nicht verwendet wird. Fragen, ob jemand irgendwelche Tipps hat, wie es funktioniert. Hier ist mein Setup:CakePHP - CakeDC Plugin Berechtigung funktioniert nicht
bootstrap.php
Configure::write('Users.config', ['users']);
Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);
AppController.phpinitialize
Funktion
$this->loadComponent('CakeDC/Users.UsersAuth');
config/users.php
$config = [
'Auth' => [
'authError' => 'Did you really think you are allowed to see that?'
]
];
return $config;
config/permissions.php
return [
'Users.SimpleRbac.permissions' => [
[
'role' => '*',
'controller' => 'Pages',
'action' => ['display'],
'allowed' => true
], [
'role' => '*',
'controller' => 'Taxes',
'action' => ['*'],
'allowed' => true
], [
'role' => '*',
'prefix' => 'v1',
'controller' => '*',
'action' => '*',
'allowed' => true
]
]
];
return $config;
Ehrlich gesagt scheint es ein Konfigurationsproblem CakePHP, aber ich bin nicht in der Lage zu finden, wo das Problem herkommt. Ich sage das, weil obwohl Debug zeigt die richtige Datei geladen authorize
, wird es nicht aufgerufen.
Vielen Dank für Ihre gründliche Antwort. Ich werde überprüfen, was Sie hier getan haben. Ich habe es versäumt, den gesamten Code zu meiner Frage hinzuzufügen, und ich habe ihn aktualisiert, um zu reflektieren, was ich habe. –
Ich habe Ihr C9-Setup überprüft und es scheint mir ähnlich zu sein. In Ihrer 'passages.php' Datei erlauben Sie' 'rolle '=>' user ',' um auf die Homepage zuzugreifen. Basierend auf Ihrem Screenshot verhindert es den Zugriff auf nicht authentifizierte Benutzer. Ich sehe das gleiche Ergebnis in meiner App, auch wenn ich "Rolle" => "*", ". Könnten Sie diese Berechtigung in Ihrer App in "Rolle" => "*" ändern? Lassen Sie mich wissen, ob Sie die Homepage sehen können oder ob Sie weiterhin auf die Seite "Login" gelangen. Vielen Dank! –
Ich dachte irrtümlicherweise, SimpleRbacAuthorize.php würde mir erlauben, $ this-> Auth-> allow (['action']) nicht zu benutzen, ohne dass ein Benutzer eingeloggt ist. Das ist nicht der Fall. Danke noch einmal! –