1
나는 cakePHP의 isAuthorized() 함수를 사용하여 사용자가 컨트롤러 작업을 실행할 수있는 권한이 있는지를 확인하고 있지만 이상한 문제는 다른 컨트롤러 작업의 사용 권한이 차단되었다는 것입니다 뿐만 아니라 사용자로부터. 난 단지이 일을 해요 : 내가 로그인 한 사용자가 작업 my_action
을 실행할 수있는 권한이 있는지 확인하려면이상한 cakePHP isAuthorized() 문제
function isAuthorized()
{
$user_id_logged_in = $this->Auth->user('id');
switch($this->action)
{
case: 'my_action':
if($user_id_logged_in)
{
// check if user has access to execute controller action
return $this->Acl->check(array(
'model' => 'MyModel', 'foreign_key' => $my_foreign_key),
'controllers/MyController/'.$this->action);
}
else
{
return false;
}
break;
}
}
. 하지만 이렇게하면 사용자가 내 컨트롤러의 다른 작업에 대한 사용 권한을 잃게됩니다. 어떤 생각이 잘못된거야?
는
어디에서'$ user_id_logged_in'을 (를) 설정하고 있습니까? –
$ user_id_logged_in은'$ this-> Auth-> user ('id');와 같습니다. – user765368
문서에서 알 수 있듯이'check()'메소드는 3 개의 문자열 매개 변수를 취합니다. 'check ($ aro, $ aco, $ action = "*")'. [여기] (http://api20.cakephp.org/class/acl-component#method-AclComponentcheck)를 볼 수 있습니다. –