Cakephp ACL、ARO和ACO,如果有新的部分,如何更新它们?

Cakephp ACL、ARO和ACO,如果有新的部分,如何更新它们?,cakephp,acl,Cakephp,Acl,如果我在我的站点中添加了一个部分,我正在试图了解如何使用AROs和ACOs CakePHP指南明确说明了ACL的概念是如何工作的,但没有说明它应该如何在代码中实现。就我个人而言,我发现本教程的所有部分都不清楚如何在CakePHP框架中使用它们。它似乎是CakePHP框架中最不友好的部分 现在,当我进入我创建的新部分时,我发现了这个错误,我不知道如何修复它 Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissio

如果我在我的站点中添加了一个部分,我正在试图了解如何使用
AROs
ACOs

CakePHP
指南明确说明了
ACL
的概念是如何工作的,但没有说明它应该如何在代码中实现。就我个人而言,我发现本教程的所有部分都不清楚如何在
CakePHP
框架中使用它们。它似乎是
CakePHP
框架中最不友好的部分

现在,当我进入我创建的新部分时,我发现了这个错误,我不知道如何修复它

Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Array
(
    [User] => Array (
        [id] => 1
        [username] => vittorio
        [group_id] => 1
        [created] => 2011-03-30 10:51:23
        [modified] => 2011-03-30 10:51:23
        [viewable] => 0
    )

)

Aco: controllers/Works/index [CORE/cake/libs/controller/components/acl.php, line 273]
如果我看着

和上

我应该得到答案,但如果我再次调用url
mysite.com/build\u acl运行此代码,我只会得到以下错误:

Missing Controller

Error: BuildAclController could not be found.

Error: Create the class BuildAclController below in file: app/controllers/build_acl_controller.php

<?php
    class BuildAclController extends AppController {

    var $name = 'BuildAcl';
}
?>

Notice: If you want to customize this error message, create app/views/errors/missing_controller.ctp
缺少控制器
错误:找不到BuildAclController。
错误:在以下文件中创建类BuildAclController:app/controllers/build\u acl\u controller.php
注意:如果要自定义此错误消息,请创建app/views/errors/missing_controller.ctp
是否有一位像样的指导者谈论
ACL
AROs
ACOs
,以及如何在
CakePHP
上实现它们而不让读者迷路

mysite.com/build_acl
您必须在控制器的任何操作中运行build_acl,您不能像引用没有控制器的操作那样调用它。至少你可以这样试试

mysite.com/{my_controller}/build_acl
或者在app_控制器的beforeFilter方法中运行它,例如

function beforeFilter(){
  $this->build_acl();
}
当然,函数本身必须在app_controller中声明。

Vittorio

恕我直言,ACL和AUTH组合在一起是一个非常通用的工具。第一次把它投入工作让我有点恼火。我反复看到的主要错误是:

  • 在创建一个或多个新操作后调用
    生成acl
  • 初始化新出现的设置(新的
    ACL
    节点作为 上一步骤)中的所有步骤都具有正确的访问权限 权利
  • 在从父级
    应用程序控制器继承的每个控制器中调用
    父级::beforeFilter()
  • 尝试保存一个foobred设置,而不是在本书末尾再次阅读Auth+Acl教程。它是有效的(无意冒犯),很多人以前都完成过,所以你也可以(我不是说它是瞬间完成的)
  • 重塑方向盘:完成基本的Auth+Acl功能后,查看sourceforge和github上的插件

  • 不是重新发明轮子^^^,因为完美的AUTH+ACL管理插件尚未编写(但可用代码确实存在)

旅途愉快,本杰明

Edit0 基本代码卫生很有帮助,例如,如果您允许用户作为请求对象和操作作为受控对象,那么将
build\u acl()
写入用户\u控制器是有意义的,后面紧跟着,例如
init\u db()
,在这里集中设置访问权限。
在投入生产之前,不要忘记删除这些黑客,即使再次设置正确的访问权限不会有多大影响,但想象一下john doe和朋友们如果一直运行此功能会对你的应用程序做什么?我还没有找到。我建议你自己找一个。这比处理Cake的ACL头痛要容易得多stuff@Nick,你提到的第一点应该被我的帖子作废。您提到的第二点很可能导致与ACL系统等效,因为您将尝试以最少的空间需求实现最通用的解决方案访问控制解决方案(避免庞大的稀疏矩阵)。就新系统上的程序员API而言,收益将为零。如果您只想实现一个快速且肮脏的行级访问系统,那么有很多方法可以实现。但是,不要把这与实现ACL系统混为一谈。谢谢你的提示,我只是说我不理解ACL部分,因为我不习惯使用它(OOP Flash developer)。@vittorio,我不想说得太多而冒犯你。我只是觉得在一个中心位置写下反复出现的问题不仅对你有帮助,而且对其他问题也有帮助。从我所读到的,其他人,而不是你一个人,在这里挣扎。问候