2017-03-01 5 views
1

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.

Antwort

1

Bitte stellen Sie sicher, kehren die $config Variable in der users.php Datei und das Plugin richtig initialisiert wird, wie hier angegeben https://github.com/CakeDC/users/blob/master/Docs/Documentation/Configuration.md

Configure::write('Users.config', ['users']); 
Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]); 

Ich habe eine Testumgebung hier mit Ihrer bereitgestellt Auth Konfiguration erstellt und es funktioniert richtig https://ide.c9.io/steinkel/users-so-42523209

https://nimbus.everhelper.me/client/notes/share/790695/girguwv9x7rttdvu5c4x

Danke,

+0

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. –

+0

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! –

+0

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! –

Verwandte Themen