2015-01-01 18 views

Odpowiedz

4

ACL nie jest wbudowany w CakePHP 3, tak jak w CakePHP 2. Jest teraz dostępny jako oddzielna wtyczka.

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

klas ACL związane zostały przeniesione do osobnej wtyczki. Password hashers, Dostawca uwierzytelniania i autoryzacji został przeniesiony do obszaru nazw \ Cake \ Auth. Konieczne jest również przeniesienie operatorów i ich nazw do obszaru nazw aplikacji \ Auth.

Możesz znaleźć wtyczkę na https://github.com/cakephp/acl, ale pamiętaj, że nie jest jeszcze stabilna.

3

Świetne pytanie, ponieważ Daniel Castro powiedział, że wtyczka ma numer https://github.com/cakephp/acl.

Część że brakuje jest przesłonić „isAuthorized” w „AppController.php” z czymś takim:

... 
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; 
    } 

Ktoś mądrzejszy niż ja wiem lepiej, jeśli bity użytkownika/akcja/kontroler może być lepiej zdezynfekowane. Istnieje wiele ostrzeżeń na temat stabilności tej wtyczki i "gotchas" na acl pod względem wydajności.

jestem cięcia nad od implementacji 1.3 było pomocne dodać w AppController „initialize” informacji z http://book.cakephp.org/3.0/en/controllers/components/authentication.html