cakephp:$ this-> Auth-> allow

时间:2011-10-10 05:51:53

标签: cakephp authentication

当我点击导航栏上的录取下的Enroll Now按钮时,应显示\merry_flowers\views\students\add.ctp
而是显示登录页面。 有谁知道我做错了什么?

以下是该项目的app_controller.php

class AppController extends Controller {
var $components=array('Auth','Session','Cookie');

function beforeFilter(){
  if (isset($this->Auth)){
        $this->Auth->userModel='MerryParent';
        $this->Auth->loginAction=array('controller'=>'merry_parents','action'=>'login');
                    //var_dump($this->data);
        $this->Auth->allow('*');
        $this->Auth->loginRedirect=array('controller'=>'merry_parents','action'=>'report_card');
        $this->Auth->logoutRedirect=array('controller'=>'merry_parents','action'=>'register');
        $this->Auth->deny('report_card');
        $this->Auth->authorize='controller';
      }
   else
        $this->Session->setFlash('Auth has not been set');  
}

function isAuthorized(){
    return true;
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

如果您的StudentsControllerbeforeFilter,则需要致电parent::beforeFilter或者不会发生Auth设置。

我还注意到使用authorize = 'controller'的{​​{3}}; “请记住,在您已经针对用户模型进行基本身份验证检查后,将检查[isAuthorized]。”鉴于你有$this->Auth->allow('*'),应该完全跳过auth,所以我会寻找一个更基本的错误,例如beforeFilter覆盖。

遗憾的是,您粘贴的代码中没有任何突出显示。根据我的经验,Auth问题通常涉及facepalm解决方案:)