2011-12-13 62 views
1

我爱CakePHP的,但不能换我的头周围的ACL /验证问题。其他一切都很好地融合在一起,但当谈到这一点时,我迷了路。最重要的是,如果没有解决,我无法完成我的申请。所以,我非常需要你的帮助。CakePHP的ACL验证故障

注意事项:

  • 我已经尝试了一些可用的插件,但无济于事。
  • 我已经使用在线教程以及由马里亚诺最新的CakePHP的书,但没有成功。
  • 我已经试过我自己,也无济于事

为什么如此难以得到这个实现的呢?

这是我的问题:

  • 是否有任何其他的方法来处理访问权限与多个管理,最终用户等一个CakePHP的应用程序?
  • 对于ACL是唯一/最好的方式的可能性,我该怎么办呢?
  • 我可能会做错什么?

回答

2

正如你所说的,你已经尝试了一些可用的插件,你可能已经尝试了我自己的插件:http://www.alaxos.net/blaxos/pages/view/plugin_acl它主要是一个图形界面,当它们用于授予/拒绝时,它允许设置ACL权限获得行动。

我在这里的观点是,除了插件本身,我可以使用这个插件,一个非常简单的示例应用程序http://www.alaxos.net/blaxos/pages/view/demo_plugins制造。它可以帮助你,如果你安装它并查看代码,因为应用程序有一些公共部分,并且有些部分受到ACLComponent的保护。

+0

看起来像一个甜蜜的插件,我必须在最短的时间内在我的最新Cake项目中实现ACL,我想我会带一个看它! – Oldskool

+0

正确,我没有试过你的插件,如果我可以使它像你的演示中那样工作,我会成为GOLDEN。我已下载并按照说明操作。但是,它正在抛出一个错误。我在app_controller.php beforeFilter's中使用了一个configurations_controller.php来检查站点是打开还是关闭。我有这样的'if($ this-> Configuration-> get_site_status()== 1){'....我得到的错误是'Undefined property:AclController :: $ Configuration'。我该如何解决这个问题?这是可能的吗? –

+0

你有一个控制器是你的AppController的属性?这并不完全遵循Cake的标准做法。如果你需要调用另一个控制器的动作,你应该使用'$ this-> requestAction()'函数。或者'get_site_status()'方法可以放置在模型中。无论如何,这里的问题是_如何初始化'配置'属性?_,因为看起来这不是在插件上完成的。 – nIcO

2

这是蛋糕,ACL的复杂的阵痛之一..

有没有其他办法?嗯,是。是的,从某种意义上说,您可以制作自己的访问权限管理,并简单地介绍蛋糕的ACL实施。例如,你可以有一个基于角色的ACL,其中角色几乎是一个固定的列表。这可以通过多种方式完成,其中之一是DarkAuth

更进一步,不要试图以满足您的应用程序成饼的ACL方案,如果它不适合你。烘焙你自己的蛋糕,你可以选择插入你自己的对象auth/ACL的东西,所以使用它!

但请注意,您想要自己创建的任何功能丰富的ACL系统最终可能会看起来很像蛋糕的ACL ..我首先决定刚好你需要什么,然后寻找一种方法来做到这一点。

在任何情况下,祝你好运!

+0

感谢您的建议。我在推动我是否可以解决Auth/Acl Cake问题,但如果不能,DarkAuth似乎是一个非常合理的选择。它看起来像是使用CakePHP 1.2编写的,但是我会努力...非常感谢 –

1

我刚刚写了可能是最简单的验证 - 我把它叫做“微小”: http://www.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/

这应该只是你需要什么。

它确实需要的角色存在于会话验证,虽然和你自己管理的用户角色。 因此,如果您想使用多角色身份验证,则可能必须将其添加到您的登录方法。

+0

嘿..这看起来不错。但是,我终于在Alaxos Plugin_Acl上取得了成功,并且我坚持要管理我的ACL。不过,我很感谢你制作这个教程,我相信很多其他的CakePHP用户也会很感激。谢谢, –

+0

很高兴在这里。 alexos的插件具有很好的功能,可以从网站进行编辑(动态)。这种动态的方法可能更适合于某些项目。所以没有难过的感觉:) – mark