在play框架中仅获取已记录用户的记录

时间:2012-03-08 14:36:27

标签: playframework

我一定以某种方式错过了这个......

在我的app用户" x"拥有帖子1,4,8。他应该只能查看/编辑这些帖子。 如果我在浏览器中打开localhost:9000/post/1,我希望它能够编辑具有编辑功能的详细信息。

当我打开localhost:9000/post/99时 - 他应该无法查看或编辑此帖子。我如何在Play Framework中限制它?

我知道@Check这个概念,但这是正确的方法吗?

3 个答案:

答案 0 :(得分:1)

标准安全模块不允许该级别的粒度。

我有类似的要求,我使用secure permissions模块,基于drools。

希望这有帮助!

答案 1 :(得分:1)

无论哪种方式,您都需要点击数据库以查看是否允许用户查看帖子。

您可以将此代码放在该控制器的@Before拦截器中或拉出Post记录的相关show方法中 - 如果未经授权,请调用forbidden()方法。

答案 2 :(得分:0)

最简单的方法是在会话中存储已连接用户的ID,当您在数据库中找到帖子时,您可以按帖子ID和用户ID搜索,而不仅仅是发布ID。这样您就无法找到适合您用户的帖子。