0

我正在构建一个带有用户身份验证的小型 CakePHP 应用程序。

按用户过滤内容以使用户只能看到自己的内容的最佳做法是什么?

我看过这篇文章,但这似乎不是一个有效的选择,因为它意味着要为每个操作添加一个条件

CakePHP:使用会话的用户 ID 过滤索引()

是否建议beforeFilter在 AppModel 中添加一个将通过经过身份验证的用户 ID 进行过滤的方法,或者 Cake 是否有内置的方法来执行此操作?

4

1 回答 1

1

没有内置的方法可以做到这一点,并且有许多可行的解决方案。

最好的方法都取决于你的情况。在某些情况下,最好按每个操作进行,例如您链接到的问题。在其他情况下,更通用的解决方案beforeFind会更好,例如为您的 Model/s 甚至为您的 AppModel 编写方法。

哪种解决方案最好取决于您的确切要求。例如,如果用户可以绝对、总是、只能查看他们自己的内容,并且如果每个表都通过 user_id 字段链接到用户,那么更通用的解决方案将起作用。

但是,如果它更加多样化并且只有某些控制器的某些操作需要根据当前登录的用户进行限制,那么需要一种不太通用的方法(例如您链接到的方法)。

于 2013-09-03T04:04:34.490 回答