Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
奇怪的cakePHP未授权()问题_Php_Cakephp_Permissions_Cakephp 1.3_Acl - Fatal编程技术网

奇怪的cakePHP未授权()问题

奇怪的cakePHP未授权()问题,php,cakephp,permissions,cakephp-1.3,acl,Php,Cakephp,Permissions,Cakephp 1.3,Acl,我正在使用cakePHP的isAuthorized()函数检查用户是否有权执行控制器操作,但我遇到的奇怪问题是,我的其他控制器操作的权限也被用户阻止。我只是这样做: function isAuthorized() { $user_id_logged_in = $this->Auth->user('id'); switch($this->action) { case: 'my_action': if($user_id_l

我正在使用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;
    }
}
我想检查已登录的用户是否有权执行操作
my\u操作
。但当我这样做时,用户也会失去对控制器中其他操作的权限。你知道这是怎么回事吗


谢谢

我认为问题在于,在
isAuthorized()
的末尾没有返回任何值,因此cake假设它是
false
,因此拒绝访问其他所有内容


尝试添加一个
返回true

您在哪里设置
$user\u id\u logged\u in
?$user\u id\u logged\u in恰好等于
$this->Auth->user('id')
从文档中可以看出,
check()
方法使用3个字符串参数<代码>检查($aro,$aco,$action=“*”)
。你可以看到。我可以在书中看到你的版本。你的版本成功了吗?我还认为,
MyModel
可能应该是您的用户模型名称(
User
可能),而
$my\u foreign\u key
应该是
$User\u id\u logged\u in