如果操作在允许列表中,请签入模板

时间:2016-05-09 16:26:41

标签: cakephp

我不想检查用户是否已登录 - 通常已完成。我想检查当前视图是否在控制器中设置的允许列表中。

$this->Auth->allow('testresults', 'testlist' , 'detaillist', 

如何确定是否允许某项操作?

4 个答案:

答案 0 :(得分:0)

用它来检查。

let attrTet = NSMutableAttributedString(string: "Test is \ne next line.", attributes: nil)
testButton.titleLabel?.numberOfLines = 0
testButton.setTitle(attrTet.string, forState: .Normal)

答案 1 :(得分:0)

在任何地方使用此代码来查看允许的操作:

debug(AuthComponent::$allowedActions);exit;

答案 2 :(得分:0)

将信息传递给视图

allowed actions are stored in a public property,所以在你的控制器代码中,你可以这样做:

$allowed = $this->Auth->allowedActions;
$this->set('allowedActions', $allowed);

然后只需在视图中预期该数组。

原则上,视图模板不需要询问信息 - 它们只应根据收到的信息采取行动。

答案 3 :(得分:0)

现在提出混合代码解决方案..在beforefilter中..

    $this->Auth->allow('index', 'page1','page2'..);

$pagepermission = 'private';
$allowed = $this->Auth->allowedActions;
$action = $this->request->params['action'];

    if(in_array($action, $allowed)){
        $pagepermission = 'public';
    }
 $this->set('pagepermission',$pagepermission);