【问题标题】:CakePHP ACL and Auth not workingCakePHP ACL 和身份验证不起作用
【发布时间】:2012-09-16 12:23:27
【问题描述】:

我有几个关于 CakePHPs ACL 和 Auth 系统的问题。

  1. acos 表中别名的命名约定是什么?是 'controllers/Posts/add' 还是只是带有来自 'Posts' 的父 id 的 'add'?
  2. 我的登录无效。当我尝试登录时,我没有收到任何错误消息,但 Auth.User 和 Auth->user('id') 都是空的。可能是什么问题呢?我所做的一切都与 CakePHP 的 ACL 示例中的一样。

谢谢。

更新: 我的登录现在有效(服务器上的时间设置有问题),我的 acos 表看起来正确,但我无法执行任何操作。我允许 aros_acos 表中的操作。如果我使用 '$this->Acl->check()' 检查权限,如果我给出动作的单一名称而不是完整路径('controllers/Posts/add' 不起作用),它只会起作用。

【问题讨论】:

  • ACOS 表中别名的命名约定是您提供的第二个选项:添加帖子的父 ID。我们需要查看您的登录问题代码。
  • 登录问题解决了。但是我仍然有 ACL 的问题。
  • 从个人经验来看,我完全更喜欢 ACL 而不是数据库中的。我注意到它会导致很多问题,例如在不同的开发盒和生产环境中的不同访问权限。我想这可以通过迁移来解决。 Cake 确实有一个基于文件的 ACL。我打算研究使用它。只是给你的随机信息。

标签: php cakephp authentication acl


【解决方案1】:

我通过以下方式解决了问题:

  1. 确保服务器上的时间正确。否则会话将无法工作。
  2. 更正acos表中的表数据。尤其要确保 'lft' 和 'rght' 值是正确的。此页面可能会有所帮助:http://www.sitepoint.com/hierarchical-data-database-2/
  3. 您需要将要使用的每个操作添加到 acos 表中。如果您不这样做,则不允许您执行此操作。即使您允许孔控制器。

【讨论】:

    【解决方案2】:

    要轻松填写 ACO 数据表,您还可以使用我的插件:http://www.alaxos.net/blaxos/pages/view/plugin_acl_2.0

    那么就不用担心如何创建记录了,它会为你做的 ;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多