Я ищу документ, но я не нашел ничего о реализации ACL в cakephp 3. Как я могу реализовать авторизацию с ACL в cakephp 3?Авторизация и ACL в cakephp 3
ответ
ACL не встроен в CakePHP 3, как в CakePHP 2. Теперь он доступен как отдельный плагин.
Цитата http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html
, связанные с ACL классов были перенесены в отдельный плагин. Пароль, Поставщики аутентификации и авторизации, перемещенные в пространство имен \ Cake \ Auth. Вы должны перенести своих провайдеров и хэширов в пространство имен App \ Auth.
Вы можете найти плагин на https://github.com/cakephp/acl, но учтите, что он еще не стабилен.
Отличный вопрос, так как Даниэль Кастро сказал, что плагин находится в https://github.com/cakephp/acl.
Та часть, которая отсутствует, чтобы отменить «isAuthorized» в вашем «AppController.php» что-то вроде:
...
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;
}
Кто-то мудрее, чем я буду знать лучше, если биты пользователь/действие/контроллер может быть лучше дезинфицировать. Существует множество предупреждений об устойчивости этого плагина и «gotchas» на acl с точки зрения производительности.
Я резка над от 1,3 реализации, это было полезно добавить в AppController «» инициализации информации от http://book.cakephp.org/3.0/en/controllers/components/authentication.html