Cerco il documento ma non trovo nulla sull'implementazione ACL in cakephp 3. Come posso implementare l'autorizzazione con ACL in cakephp 3?Autorizzazione e ACL in cakephp 3
risposta
ACL non è integrato in CakePHP 3 come in CakePHP 2. È ora disponibile come plug-in separato.
Citazione di http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html
classi relative ACL sono stati spostati in un plugin separato. Password hashers, Provider di autenticazione e autorizzazione spostati nello spazio dei nomi \ Cake \ Auth. È necessario spostare anche i provider e le porzioni di telefono nello spazio dei nomi App \ Auth.
È possibile trovare il plug-in a https://github.com/cakephp/acl, ma si noti che non è ancora stabile.
Grande domanda, come Daniel Castro ha dichiarato che il plug-in è https://github.com/cakephp/acl.
La parte che manca è quello di ignorare 'isAuthorized' nel vostro 'AppController.php' con qualcosa di simile:
...
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;
}
Qualcuno più saggio di me saprà meglio se i bit utente/azione/controller potrebbe essere meglio igienizzato. Ci sono molti avvertimenti sulla stabilità di questo plugin e "gotchas" su acl in termini di prestazioni.
Sto tagliando sopra da un'implementazione 1.3, è stato utile per aggiungere nella AppController 'inizializzazione' informazioni da http://book.cakephp.org/3.0/en/controllers/components/authentication.html