Cakephp 3 - 公共函数add不适用于isAuthorized

时间:2014-12-12 06:56:44

标签: cakephp authorization cakephp-3.0

我对isAuthorized函数有点问题。

当我使用公共功能添加时,isAuthorized无法识别操作请求。我将名称更改为“ addv ”,现在它正在运行。所以为什么?为什么我不能使用'添加'这个词?我在另一个项目中使用了两次,并且在我当前的项目中使用过一次。

谢谢你的帮助!

<?php  
namespace App\Controller;       

use App\Controller\AppController;
use Cake\Event\Event;
use Cake\Validation\Validator;

class VideosController extends AppController{

    public function isAuthorized($user){
        if(in_array($this->request->action, ['addv'])){
            die();
            if($user){
                return true;
            }
        }

        return parent::isAuthorized($user);
    }

    public function addv($idc= null,$idg = null){
        debug($idc);
        debug($this->request->action);
    }


}
?>

AppController的

class AppController extends Controller {

public function initialize() {
    $this->loadComponent('Flash');
    $this->loadComponent('Auth', [
        'authorize' => ['Controller'],
        'loginRedirect' => [
            'controller' => 'Pages',
            'action' => 'display',
            'home'
        ],
        'logoutRedirect' => [
            'controller' => 'Pages',
            'action' => 'display',
            'home'
        ]
    ]);

    $this->loadComponent('RequestHandler');

    $this->set('info_session', $this->Auth->user());
}

public function beforeFilter(Event $event){
    $this->Auth->allow(['register']);
    $this->Auth->allow(['display']);
    $this->Auth->allow(['controller' => 'Users', 'action' => 'add']);


}

public function isAuthorized($user){
    if(isset($user['grade']) && $user['grade']=== 3){
        return true;
    }
}

}

0 个答案:

没有答案