2013-03-07 165 views
0

Noob问题!CakePHP - 路由到管理员

我有一个完整的管理员设置:登录,身份验证等,它的工作。 所以,现在我需要一个新的控制器到另一种情况,然后我创建名为PressDownloadsController的控制器和正确的视图到这个新控制器内的每个动作。

我也创建了以下路线:

Router::connect('/pressdownloads', array('controller' => 'pressdownloads', 'action' => 'downloads')); 

里面的pressDownloads控制器,有一些动作之间的一些重定向。

当我尝试打开url/pressdownloads/downloads或只是/ pressdownloads它只是去管理员控制器,我需要在访问pressdownloads区域之前登录。

为什么?

UsersController(admin)中的验证设置:

好的。我知道了。 所以AUTH设置:

 public $components = array(

    'Session', 

    'Auth' => array(

     'loginAction' => array(

      'controller' => 'users', 

      'action' => 'login', 

      'prefix' => 'admin', 

     ), 

     'loginRedirect' => '/admin/events', 

     'logoutRedirect' => '/admin', 

     'authError' => 'Acesso negado', 

     'flash' => array(

      'element' => 'admin/messages/error', 

      'key' => 'auth', 

      'params' => array() 

     ), 

     'authorize' => array('Controller'), 

     'authenticate' => array(

      'Form' => array(

       'fields' => array('username' => 'email') 

      ) 

     ) 

    ) 

); 

回答

0

我建议检查身份验证组件设置以及如何将管理区域与非管理员区分开来。 另外,你可以在你的路由中指定不使用这样的管理员前缀:

Router::connect('/pressdownloads', array('controller' => 'pressdownloads', 'action' => 'downloads', 'admin' => false)); 
+0

我在哪里可以找到Auth组件设置? – josias 2013-03-07 16:03:58

+0

好的!它只需要一个Allow('my_action') – josias 2013-03-07 16:34:38

0

我相信“管理”已启用后,你要那个链接。简而言之,您必须点击admin提供的页面中的链接。

尝试在您目前的路线中添加其他参数“admin”=> false

Router::connect('/pressdownloads', 
       array(
        'controller' => 'pressdownloads', 
        'action' => 'downloads', 
        'admin' => false 
       ) 
); 
+0

谢谢你的回复!我现在做了,但仍然没有工作。它继续去管理区域,另一个想法? – josias 2013-03-07 15:36:21

+0

尝试将调试级别设置为0,如果它高于进行高速缓存刷新并查看是否有效。我很确定,这是事实! 手指交叉:D – 2013-03-07 15:37:58

+0

也如下面@Karisters指出的那样,检查Auth和Acl组件也可能是一个好主意。 (如果正在使用) 请确保,Auth允许您采取行动。 – 2013-03-07 16:02:03