目前我使用Auth组件让用户登录/退出 - ACL被定义为对用户组进行排序(Guests,Users,Admins)- 具有明显的限制;管理员可以访问所有内容,用户只能在用户控制器中编辑,而访客只能看到显示/索引/查看等等。
现在为了防止用户编辑其他用户 - 我有一个名为isOwner()的函数,它基本上检查您是否正在尝试编辑自己的个人资料;还检查是否是管理员正在编辑。如果用户是他们要编辑的内容的所有者,则允许它,否则它将重定向并显示闪存消息。
阅读http://book.cakephp.org/view/1245/Defining-Permissions-Cake-s-Database-ACL后 - 我想知道是否可以在ACL中定义此功能?
类似于:
$this->Acl->allow(array('model' => 'User', 'foreign_key' => $id), 'Users', 'edit', $id)
虽然我还没有深入研究,但我假设我需要为每个新注册的用户创建一些sort of beforeSave()来允许他编辑自己的个人资料。