2009-09-18 50 views
1

我有一个相当简单的CakePHP应用程序,它使用Auth组件限制对管理功能的访问。这一切都工作正常,但我使用页面控制器显示主页和管理主页。如何在CakePHP中密码保护静态页面?

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

回答

4

将目录中的PagesController复制到您的常规/app/controller/目录中,并根据需要对其进行修改。

0

我不相信你可以使用Auth组件来有效地保护静态页面,因为页面控制器使用单个动作display()来呈现所有静态页面。因为通常你会像Auth-> allow('display')那样允许访问像'/'这样的静态页面,所以没有一种有效的方式来指定个别静态页面的允许/拒绝。在您的应用程序控制器

0

这个工作对我来说

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