로그인에 Auth 구성 요소를 사용합니다. 내가 ACL을 뒤죽박죽하지는 않을 것이고, 나는 꽤 혼란 스럽다.
사용자 테이블에서 user_level, access_level 또는 permissions 열을 추가하여이 방법을 사용합니다. 그런 다음 여기서 숫자 값이나 그와 비슷한 것을 저장할 수 있습니다.
사용자 모델에서 Auth를 사용하여 로그인 할 때 Auth 사용자 세션 개체에 해당 값을 저장할 수 있습니다. 그래서 컨트롤러에서 $ this-> Auth ('User.access_level')를 사용하여 접근 할 수 있습니다.
이제 Auth 구성 요소는 기본적으로 app_controller에서 isAuthorized() 함수를 사용합니다. 이 함수는 누군가가 로그인했는지 여부를 확인하기 위해 호출됩니다.이 값을 수정하여 access_level을 확인하고 적절한 조치를 취할 수 있습니다. 이 기술을 사용하여 admin = 1이 아닌 사용자가/cms 라우팅에 참여할 수 없도록했습니다.
여기에 대한 자세한 내용은 docs http://book.cakephp.org/view/172/Authentication에 있으며 isAuthorized()에 대한 자세한 내용은 여기를 참조하십시오. http://api.cakephp.org/class/auth-component#method-AuthComponentisAuthorized
app_controller에서 모든 Auth 구성 요소 변수를 설정했는지 확인하십시오. 또한 auth 유형이 controller로 설정되고 allow() 및 deny()가 올바르게 구성되었는지 확인하십시오.
이 모든 것을 하나의 큰 문제는 컨트롤러에서 beforeFilter()를 사용하는 경우 app_controller의 내용이 미리 실행되도록 parent :: beforeFilter()를 수행해야합니다. :)