我正在使用Acegi / Spring Security插件使用Grails构建一个Web应用程序。
如果页面显示了当前登录用户的详细信息,我只想显示“编辑”链接。
例如,id = 44的登录用户正在查看页面“localhost:8080 / app / user / show / 44”
我已经尝试了以下方法,但无法正常工作。关于如何进行这项工作的任何想法,还是我错过了一些非常简单的方法?
<g:isLoggedIn>
<g:if test="${person.id == loggedInUserInfo(field='id')}">
<g:link controller="user" action="edit" id="${person.id}">Edit</g:link>
</g:if>
</g:isLoggedIn>
最佳答案
我不知道这是否只是一个错字,但loginInUserInfo应该与 map 一起调用。
您在方法调用中进行了赋值,这导致只给LoggedInUserInfo值'id'
而不是field ='id',它应该显示字段:'id'
<g:isLoggedIn>
<g:if test="${person.id == loggedInUserInfo(field : 'id')}">
<g:link controller="user" action="edit" id="${person.id}">Edit</g:link>
</g:if>
</g:isLoggedIn>
关于security - 在Grails中编辑我自己的用户页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1233193/