【发布时间】:2013-12-01 22:27:45
【问题描述】:
我有一个 Grails 应用程序,它的域为 People、Location、Pictures 和 Users。控制器和视图已生成。我有我的索引页sec:tagged,以便管理员可以看到控制器来上传文件、创建数据和用户。
用户拥有用户名、密码和位置。当用户登录时,我希望他们看到与其位置相关的文件。一个位置可以有多个用户。但我希望每个具有该位置的用户都能看到相关文件。我盯着@Secure,但转到sec: 标签。现在我只需要根据位置限制文件的显示。有什么建议吗?
这是我目前用于用户显示的代码
<sec:access expression="hasRole('ROLE_USER')">
<% def user = springSecurityService.getCurrentlyLoggedInUser()
def aPerson = user.person
def locations = Location.findAllByPerson(aPerson)
locations.each ${it.picture} %>
<g:select name="picture" from="${aPerson.all()}"/>
</sec:access>
这不会在用户页面上显示任何内容。
【问题讨论】:
-
听起来你可能需要看看使用springSecurityService来获取当前用户(getCurrentUser()),这样你就可以根据用户位置进行动态查询?
-
您的域是什么样的?
-
这是我目前所拥有的
// 我有这个在索引中 -
请将代码添加到问题中。
-
我认为你的问题是你试图在你的脚本块中打印 location.picture 。我不确定您是否可以使用 ${} 语法转义该块。我建议使用 g:each 标签来遍历脚本块之外的图片,例如。
${img} 。希望对您有所帮助。