cakephp控制器级别身份验证

时间:2013-05-04 16:32:51

标签: cakephp authentication controller

我正在使用cakephp进行旅游系统,我有两种不同类型的最终用户,一种是Admin,另一种是注册用户,所以我需要为这些用户提供两种不同的视图,并且用户不应该访问任何用户Admin模块的控制器,

现在我不知道如何将这两个用户分开。

2 个答案:

答案 0 :(得分:2)

听起来你正在寻找的是Prefix Routing,它应该为你提供你需要的一切。

您的网址可以由管理员作为前缀(如果适用于相关用户):

http://example.com/admin/posts

路由到(在帖子控制器中):

public function admin_index(){
    ...
}

呈现app/View/Posts/admin_index.ctp视图。

我不会多说什么,因为这方面的文档非常详尽。请注意,如果您开始引入两个以上级别的权限(例如,用户,超级用户,管理员),则前缀路由不太合适。您需要查看Access Control Lists而不是框架所涵盖的内容。

答案 1 :(得分:0)

大家好,我有另一种方法来解决这个问题,即配置每个控制器。只需将以下代码放在您不想提供访问权限的控制器中

即可



public function beforeFilter(){
if($ this-> Auth-> user('role')=='regular')
{

        $this->Session->setFlash('You cannot access');<br>
        $this->redirect(array('controller'=>'users','action' => 'index'));<br>
    }   
}



因此,如果有人以普通用户身份登录,他/她将重定向到用户控制器或您想要指定的任何其他用户