2015-01-01 14 views

Antwort

4

ACL ist nicht in CakePHP 3 integriert, wie es in CakePHP 2 war. Es ist jetzt als separates Plugin verfügbar.

Zitat von http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html

ACL verwandte Klassen wurden in ein separates Plugin bewegt. Password hashers, Die Authentifizierungs- und Autorisierungsanbieter wurden in den Namensbereich \ Cake \ Auth verschoben. Sie müssen Ihre Provider und Hashes auch in den App \ Auth-Namespace verschieben.

Sie können das Plugin unter https://github.com/cakephp/acl finden, aber beachten Sie, dass es noch nicht stabil ist.

3

Große Frage, wie Daniel Castro sagte das Plugin ist https://github.com/cakephp/acl.

Der Teil, ist außer Kraft zu setzen ‚IsAuthorized‘ in Ihrem AppController.php 'mit so etwas wie fehlt:

... 
use Acl\Controller\Component\AclComponent; 
use Cake\Controller\ComponentRegistry; 
... 



public function isAuthorized($user){ 
     $Collection = new ComponentRegistry(); 
     $acl= new AclComponent($Collection); 
     $username=$user['username']; 
     $controller=$this->request->controller; 
     $action=$this->request->action; 
     $check=$acl->check($user['username'],"$controller/$action"); 
     return $check; 
    } 

Jemand klüger als ich sein könnte, wenn der Benutzer/action/Controller Bits wissen besser besser saniert. Es gibt viele Warnungen über die Stabilität dieses Plugins und "gotchas" auf acl in Bezug auf die Leistung.

Ich schneide aus einer 1.3-Implementierung, war es hilfreich, in der AppController Initialisierungsinfo von http://book.cakephp.org/3.0/en/controllers/components/authentication.html

hinzuzufügen