【问题标题】:Setting permissions in cakephp Pages controller在 cakephp 页面控制器中设置权限
【发布时间】:2012-10-30 21:53:06
【问题描述】:

我跟随 Andrew Perkins excellent tutorial 在 CakePHP 2.0 中设置权限。

然而,我的问题与如何在 Pages 控制器中使用允许和拒绝方法有关。目前我有$this->Auth->allow('display'),它允许查看页面控制器中的所有方法。

如果我只希望主页被允许但其余的被拒绝怎么办?我该如何编码?

提前致谢。

【问题讨论】:

    标签: cakephp authentication cakephp-2.0


    【解决方案1】:

    确保您已将 PageController.php 复制到您的 app/Controller 文件夹中。然后,添加一个beforeFilter回调方法,并根据传递的页面参数设置访问权限:

    public function beforeFilter() {   
        // Use $this->request->pass to get the requested page name/id   
        // Decide on access with $this->Auth->allow() 
    }
    

    这应该可以解决您的问题。

    您可以在CakePHP manual 中找到有关请求生命周期的更多信息。这是非常有用的东西。

    【讨论】:

      【解决方案2】:

      你试过这个代码吗? 您可以将其输出到您的 PageController 或直接输入到您的控制器中

      $views = array ('index'); //array of view that you want allow
      $this->Auth->allow($views);
      

      【讨论】:

      • 嗨,谢谢。但问题是 Pages 控制器有 1 种输出方法,即显示(页面实际上由方法中传递的参数确定),因此允许或拒绝显示涵盖所有 Pages 视图。
      • 试着把我的台词放到你的controller.php而不是PageController
      • 无论显示的页面如何(CakePHP 约定),它都无法正常工作,因为我正在使用的视图正在显示。
      • 将 undex 更改为显示,因为如果你只想允许一个视图,你必须在你的控制器中这样做,而不是进入 PagesController 或其他控制器中
      猜你喜欢
      • 1970-01-01
      • 2011-12-02
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多