cakePHP 权限使用 ACL 并检查模型上的 user_id
Posted
技术标签:
【中文标题】cakePHP 权限使用 ACL 并检查模型上的 user_id【英文标题】:cakePHP permissions using ACL and checking user_id on the model 【发布时间】:2013-08-11 02:48:13 【问题描述】:我的 cakephp 应用程序在启用 acl 权限的情况下运行。我已允许一组用户能够访问我的一个控制器上的所有操作,但有时如果他们的用户 ID 与他们尝试访问的模型中的用户 ID 值不匹配,我希望能够拒绝访问或基于其他一些任意标准。
那么.. 当用户已经可以从 ACL 组件访问操作时,拒绝用户访问操作的常规方法是什么?
【问题讨论】:
【参考方案1】:TLDR:不要使用 ACL。 (这很可能是矫枉过正,而且在您的项目中似乎并不理想)。
根据您的情况,有很多选择,但归根结底是制定一种方法来检查他们是否有权在那里/正在这样做。
无论是控制器中的方法、模型,还是可以在所有模型中使用的行为……等等。
我从您的描述中猜测,理想的方法是使用“hasAccess”或其他方法创建行为。然后,在您要限制访问的“某些操作”中,运行该方法 - 如下所示:
if(!$this->MyModel->hasAccess($userId)) $this->redirect('/');
【讨论】:
以上是关于cakePHP 权限使用 ACL 并检查模型上的 user_id的主要内容,如果未能解决你的问题,请参考以下文章