Przeszukuję dokument, ale nie znajduję nic o implementacji ACL w cakephp 3. Jak mogę zaimplementować autoryzację z ACL w cakephp 3?Autoryzacja i ACL w cakephp 3
Odpowiedz
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.
Ś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