CakePHP 2.x Acl

CakePHP 2.x Acl,cakephp,authentication,authorization,acl,Cakephp,Authentication,Authorization,Acl,我使用的是CakePHP2.3.6。在一个项目中,我实现了Acl。我遵循给出的官方教程,通过cake的shell脚本填充acos表,使用AclExtras插件,然后使用定制的initDb函数填充aros_acos表 现在一切正常,表已成功填充。因此,我认为我不需要允许/拒绝函数,我以前使用这些函数进行授权。因此,我从相应控制器的beforeFilter函数中删除了这些函数。但是,当我删除它们时,我无法访问整个项目中的任何页面功能 为了填充acos表,我使用了以下命令: ./Console/cak

我使用的是CakePHP2.3.6。在一个项目中,我实现了Acl。我遵循给出的官方教程,通过cake的shell脚本填充acos表,使用AclExtras插件,然后使用定制的initDb函数填充aros_acos表

现在一切正常,表已成功填充。因此,我认为我不需要允许/拒绝函数,我以前使用这些函数进行授权。因此,我从相应控制器的beforeFilter函数中删除了这些函数。但是,当我删除它们时,我无法访问整个项目中的任何页面功能

为了填充acos表,我使用了以下命令:

./Console/cake AclExtras.AclExtras aco_sync
为了填充aros_acos表,我定制了initDB并将其放入用户控制器并运行它

所有表都已填充,一切正常,但在我实现ACL之前定义的允许/拒绝函数不起作用

我的问题是,如果我使用Acl,如果我在数据库中存储了所有ARO和ACO,如果我在数据库中定义了所有权限,那么为什么我需要这些允许/拒绝函数?如果我需要这些,那我为什么要使用Acl呢?我的项目没有Acl实现,也没有allow/deny函数

那么,我该怎么办

有人能帮我吗

谢谢。

好的

我终于让ACL工作了。我发现这太容易了,我只需要知道贝壳的雕刻。我一直都知道它在CakePHP中实现得很好,我只需要让它在我的项目中工作

首先,我们必须从shell/命令提示符使PHP和CakePHP可执行。我是在Windows7上做的,稍后将尝试Linux和MAC

首先,如果您的命令提示符下没有PHP可执行文件,请转到“我的电脑”->“属性”->“环境变量”以获得确切的路径,但您将很容易获得它。然后粘贴这个c:\wamp\bin\php\php5.3.13;在环境变量中,其中php5.3.13是特定于版本的

之后,将其粘贴到相同的位置:cakephp\lib\Cake\Console。您可以将cakephp文件夹永久复制到htdocs/www,以供以后使用

现在,在命令提示符下运行此命令:cake bake all,并按照说明操作。您必须在config.php文件中配置一个数据库

现在,您应该已经准备好了新创建的项目。现在,遵循ACL的CakePHP文档

请记住,要为所有类型的用户打开哪些函数/方法,请通过allow、AppController或特定控制器显式允许它们

假设,您希望页面/索引、用户/登录、用户/注册-这三个页面/功能对所有人都是开放的。因此,在AppController或Pages&Users控制器中允许它们