Witam. To mój pierwszy post tutaj więc prosiłbym o wyrozumiałość.
Mam taki problem próbuję uruchomić acl w w cakephp i szczerze mówiąc nie chce mi to działać.
Wszystko robiłem zgodnie z tutorialem na stronie cakea heh.
Problem polega na tym ,że doszedłem do momentu logowania. Skrypt ładnie uwierzytelnia i przepuszcza tyko stworzonych userów, jednak mają oni dostęp do wszystkich metod.
ACO stworzyłem w ten sposób z lini poleceń

cake acl create aco root controllers

Rozumiem że odnosi się ona do wszystkich kontrolerów.
Zależy mi na tym żeby userzy z grupy 1 mieli uprawnienia do wszystkiego a z drugiej tylko do wybranych metod.

Tutaj app_controller

  1. class AppController extends Controller {
  2.  
  3. var $components = array('Acl', 'Auth', 'Session');
  4. var $helpers = array('Html', 'Form', 'Session');
  5.  
  6. function beforeFilter() {
  7.  
  8. function beforeFilter() {
  9. //Configure AuthComponent
  10.  
  11. $this->Auth->actionPath = 'controllers/';
  12. $this->Auth->authorize = 'controller';
  13. $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
  14. $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'logout');
  15. $this->Auth->loginRedirect = array('controller' => 'posts', 'action' => 'add');
  16. }
  17.  
  18. }

Uprawnienia nadawałem tym skryptem

  1. function initDB() {
  2. $group = & $this->User->Group;
  3. //Allow admins to everything
  4. $group->id = 1;
  5. $this->Acl->allow($group, 'controllers');
  6.  
  7.  
  8. $group->id = 2;
  9. $this->Acl->deny($group, 'controllers');
  10. $this->Acl->allow($group, 'controllers/Pages/display');
  11. $this->Acl->allow($group, 'controllers/view/add');
  12.  
  13.  
  14.  
  15. echo "all done";
  16. }

W tym momencie do strony trzeba się logować tak jak chce ,ale czy to jest user grupy 1 czy grupy 2 mają dostęp do wszystkich metod.