如何限制用户只访问自己的信息

时间:2011-05-31 09:04:56

标签: cakephp acl

我在蛋糕手册中遵循Acl示例。
当成功时,我有更多的问题需要申请 Acl to My project

 function initDB() {
    $group = & $this->User->Group;
    //Allow admins to everything
    $group->id = 1;
    $this->Acl->allow($group, 'controllers');

    //allow managers to posts and widgets
    $group->id = 2;
    $this->Acl->deny($group, 'controllers');
    $this->Acl->allow($group, 'controllers/Posts');
    $this->Acl->allow($group, 'controllers/Widgets');

    //allow users to only add and edit on posts and widgets
    $group->id = 3;
    $this->Acl->deny($group, 'controllers');
    $this->Acl->allow($group, 'controllers/Posts/add');
    $this->Acl->allow($group, 'controllers/Posts/edit');
    $this->Acl->allow($group, 'controllers/Widgets/add');
    $this->Acl->allow($group, 'controllers/Widgets/edit');
    //we add an exit to avoid an ugly "missing views" error message
    echo "all done";
    exit;
} 

在代码中1.如何限制用户仅访问他自己的信息 2.当拒绝用户访问行动时我需要提醒 3.当我以任何角色登录时,我无法登出操作

谢谢

2 个答案:

答案 0 :(得分:2)

你需要基于行的acl,而不是基于你已经显示的动作http://jmcneese.wordpress.com/2009/04/07/update-row-level-model-access-control-for-cakephp/

答案 1 :(得分:0)

CakePHP的ACL组件可能有点令人失望。与Zend框架中的ACL组件相比,它似乎非常缺乏。

我从未尝试过dogmatic69所指的插件。在我的应用程序中,我决定使用ACL来擅长ACL,并在需要限制对行和其他内容的访问的情况下找到其他权限检查方法,而不是使用插件。

此时我唯一担心的是使用插件是CakePHP 2.0现在作为Alpha发布,如果您愿意,使用此插件可能会延迟/阻碍您进行升级。然而,这个插件的开发看起来似乎相当活跃,所以很有可能它会更新以使用2.0(如果有问题可以开始)。