使用ACL限制CakePHP中资源ID对资源的访问

时间:2012-02-16 11:55:53

标签: cakephp acl access-control

假设我在CakePHP应用程序中有Project模型和User模型。使用ACL我可以控制用户是否可以访问项目和/或ProjectsController中的特定操作。

但我想进一步控制是否允许用户查看特定项目,例如使用http://example.com/projects/3等网址id = 3访问项目。

ACL也可以这样做,或者我必须在它上面开发额外的检查吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

要限制对模型的特定值的访问,您需要使用ACL之外的其他内容。

最好定义用户和项目之间的关系,无论是包容性还是排他性。

您可能需要ProjectUser模型(项目和用户中的HABTM)以及该模型中的一个简单函数,可能是userAllowed($projectId, $userId),它检查用户是否已被授予对该项目的访问权。