Cakephp auth 和 acl 未登录用户组

Posted

技术标签:

【中文标题】Cakephp auth 和 acl 未登录用户组【英文标题】:Cake php auth and acl unlogged usergroup 【发布时间】:2009-07-18 14:31:41 【问题描述】:

我想使用 Acl 控制未注册/未登录用户的访问 - 我已经设置它,测试它的工作,我可以创建新组、用户、将用户添加到组并为特定控制器操作设置组权限

我创建了名为 unregistered 的用户组和名为 temp 的用户,但不知道如何将进入页面的未登录人员分配(映射)到该用户和组?

【问题讨论】:

【参考方案1】:

为什么要在 ACL 结构中指定默认允许规则?

假设您希望允许匿名访问以下操作:注册、关于、某个其他页面

并且您想通过 ACL 控制对以下内容的访问:编辑、回复、配置文件

在 Auth 组件中,您可以设置 Auth::allow 属性,该属性指定您希望允许每个人(登录用户和未登录用户)访问的不同控制器操作。因此,在您的控制器中(可以是 AppController 以全局应用,也可以是 SpecificController 仅应用于该控制器),指定(通常在 Controller::beforeFilter() 方法中):

$this->Auth->allow = array( 'register', 'about', 'someotherpage' );

那么 Auth 只会限制对其他页面的访问。假设我正确阅读了您的问题,这应该比您尝试做的要简单得多。

HTH!

【讨论】:

我不能那样做,因为应用程序要求之一是能够从控制面板更改允许匿名的页面,因此不能像那样硬编码 我想您可以从数据库中提取值,这样您就可以在此 beforeFilter 方法中动态设置这些值。我认为这将满足您对变量值的要求。【参考方案2】:

您在正确的轨道上 - 您已经定义了一个“匿名”用户和组。您需要做的下一步是自动以“匿名”用户身份登录任何匿名用户(这听起来很愚蠢,但相信我)。这样您就可以像注册用户一样在表中设置 ACL 权限。

@Travis Leleu - auth 表已经存在,用于定义注册用户/组的权限,那么为什么要为未注册的匿名用户提供第二个单独的表呢?

【讨论】:

以上是关于Cakephp auth 和 acl 未登录用户组的主要内容,如果未能解决你的问题,请参考以下文章

CakePhp ACL 权限

Acl-cakePHP 中组的通用权限

CakePHP Auth 登录(错误的方法?)

Cakephp 2.0 $this->Auth->login() 不工作

未找到CakePhp 3插件身份验证适配器

CakePHP Auth 如何允许特定的控制器和动作