【问题标题】:Allowing a Specific Page in Cakephp允许 Cakephp 中的特定页面
【发布时间】:2011-04-29 19:44:00
【问题描述】:

我了解如何允许未登录用户执行某些控制器操作。但是,我找不到任何关于如何允许访问特定页面的文档。控制器是页面,动作是显示。但是,我不想让用户看到所有页面,只是关于页面。

那么,允许访客访问部分而非全部页面的正确方法是什么?

【问题讨论】:

    标签: cakephp authentication


    【解决方案1】:

    恐怕您无法使用AuthComponent 提供的标准功能来做到这一点。您必须在 pages_controllerdisplay 操作中为此创建自己的逻辑。

    类似(伪代码风格)

    # in app/controllers/pages_controller.php
    var $allowedPages = array('one', 'two');
    
    function display($page) {
        if(in_array($page, $allowedPages) || $this->User->loggedin) {
            $this->render($page);
        } else {
            $this->render('not_allowed');
        }
    }
    

    【讨论】:

      【解决方案2】:

      在 CakePHP 3.x 中,您可以通过在 PagesController beforeFilter 操作中指定完整操作来实现您的目标:

      public function beforeFilter(Event $event) {
        parent::beforeFilter($event);
      
        $this->Auth->allow(
          ['controller' => 'pages', 'action' => 'display', 'about']
        );
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-18
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 2014-03-15
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        相关资源
        最近更新 更多