2015-01-01 24 views

Trả lời

4

ACL không được tích hợp vào CakePHP 3 như trong CakePHP 2. Nó hiện có sẵn dưới dạng plugin riêng biệt.

Trích từ http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html

lớp ACL liên quan đã được chuyển đến một plugin riêng biệt. Password hashers, Nhà cung cấp xác thực và ủy quyền khi được chuyển đến không gian tên \ Cake \ Auth. Bạn được yêu cầu di chuyển nhà cung cấp của mình và cũng lưu trữ không gian tên App \ Auth.

Bạn có thể tìm plugin tại https://github.com/cakephp/acl, nhưng lưu ý rằng plugin chưa ổn định.

3

Câu hỏi hay, như Daniel Castro cho biết plugin là https://github.com/cakephp/acl.

Phần đó là mất tích là để ghi đè 'isAuthorized' trong 'AppController.php' của bạn với một cái gì đó như:

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

Có người khôn ngoan hơn tôi sẽ biết tốt hơn nếu các bit dùng/hành động/điều khiển có thể là vệ sinh tốt hơn. Có rất nhiều cảnh báo về sự ổn định của plugin này và 'gotchas' trên acl về hiệu suất.

Tôi cắt lại từ một thực hiện 1.3, nó là hữu ích để thêm vào AppController 'khởi tạo' thông tin từ http://book.cakephp.org/3.0/en/controllers/components/authentication.html

Các vấn đề liên quan