cakephp控制器级身份验证

cakephp控制器级身份验证,cakephp,authentication,controller,Cakephp,Authentication,Controller,我正在用cakephp开发一个旅游系统,我有两个不同类型的最终用户,一个是管理员,另一个是注册用户,因此我需要为这些用户提供两个不同的视图,而且注册用户不应该访问管理模块的任何控制器 现在我不知道如何区分这两个用户。从它的声音来看,您正在寻找的是能够为您提供所需一切的用户 您的URL可以由管理员作为前缀(如果适用于相关用户): http://example.com/admin/posts 其路由到(在Posts控制器中): 这将呈现app/View/Posts/admin\u index.ctp

我正在用cakephp开发一个旅游系统,我有两个不同类型的最终用户,一个是管理员,另一个是注册用户,因此我需要为这些用户提供两个不同的视图,而且注册用户不应该访问管理模块的任何控制器


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

从它的声音来看,您正在寻找的是能够为您提供所需一切的用户

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

http://example.com/admin/posts

其路由到(在Posts控制器中):

这将呈现
app/View/Posts/admin\u index.ctp
视图


我不打算多说,因为文档在这方面确实非常全面。请注意,如果您开始引入两个以上级别的权限(例如用户、超级用户、管理员),那么前缀路由并不真正合适。大家好,我有一个解决这个问题的替代方法,那就是配置每个控制器。只需将以下代码放入控制器中,您不想授予访问权限



公共函数beforeFilter(){
如果($this->Auth->user('role')=='regular')
{

        $this->Session->setFlash('You cannot access');<br>
        $this->redirect(array('controller'=>'users','action' => 'index'));<br>
    }   
}
$this->Session->setFlash(“您无法访问”);
$this->重定向(数组('controller'=>'users','action'=>'index');
} }



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

Thanq Sam,对于您的suggetionHi@AaminKhan,这是一个非常简单的解决方案!将此逻辑移动到组件中可能是一个好主意,这样您就不必为每个使用它的控制器复制代码了?
        $this->Session->setFlash('You cannot access');<br>
        $this->redirect(array('controller'=>'users','action' => 'index'));<br>
    }   
}