如何用CakePHP密码保护静态页面?

时间:2009-09-18 02:31:16

标签: php cakephp

我有一个相当简单的CakePHP应用程序,它使用Auth组件来限制对管理功能的访问。这一切都运行良好但我使用Pages Controller显示主页和Admin主页。

如何设置auth来控制对家庭和'/ admin'等'/'等页面的访问?

3 个答案:

答案 0 :(得分:4)

将PagesController从/cake/libs/controller/目录复制到常规/app/controller/目录中,并根据需要进行修改。

答案 1 :(得分:0)

我不相信您可以使用Auth组件有效地保护静态页面,因为页面控制器使用单个操作display()来呈现所有静态页面。由于您通常会执行类似Auth-> allow('display')的操作来允许访问静态页面(如'/'),因此没有一种有效的方法来指定允许/拒绝各个静态页面。

答案 2 :(得分:0)

这对我有用:

在您的app控制器中:

function beforeFilter(){
    if(@$this->params['pass'][0] == 'profile') //allow \app\views\pages\profile.ctp
        $this->Auth->allow('display');

}

您也不必使用$this->params['pass']变量。 $this变量中有很多信息可用于定位正确的页面。您也可以使用网址,通常采用以下格式:/ pages / page-name