【发布时间】:2014-10-03 15:31:13
【问题描述】:
我使用的是 CakePHP 2.3.6。在一个项目中,我实现了 Acl。我按照官方给出的教程,用cake's shell scripting填充acos表,使用AclExtras插件,然后使用“自定义”initDb函数填充aros_acos表。
现在一切正常,表格已成功填充。所以,我认为我不需要allow()/deny() 函数,我以前用于Authorization。所以我从相应控制器的beforeFilter()函数中删除了这些函数。但是,当我删除它们时,我无法访问整个项目中的任何页面(功能)。
为了填充acos 表,我使用了这个命令:
./Console/cake AclExtras.AclExtras aco_sync
为了填充aros_acos 表,我自定义了initDB() 并将其放入Users 控制器并运行它。
所有表都已填充,一切都很好,但它无法使用在我实现 ACL 之前定义的 allow()/deny() 函数。
我的问题是,如果我使用Acl,如果我将所有AROs 和ACOs 都存储在database 中,如果我在database 中定义所有permissions,那么为什么我需要那些allow()/deny() 功能吗?如果我需要这些,那我为什么要使用 Acl ?如果没有 Acl 实现,我的项目很好,使用 allow()/deny() 函数。
那么,我该怎么办?
谁能帮帮我?
谢谢。
【问题讨论】:
标签: cakephp authentication authorization acl