security - 在Grails中编辑我自己的用户页面

标签 security grails

我正在使用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/

相关文章:

grails - Grails 3.3如何减少控制台输出?

python - 如何在 Python 中生成加密安全的字母数字字符串?

c++ - 获取目录中最早的文件

grails - 获取Grails标准查询中的子对象计数

database - Groovy中的数据库时间转换

java - 如何使用 Grails 3 Framework 和 Intellij15 连接到 mySQL Server 5.7

json - 如何告诉 Grails 将 JSONNull 呈现为 null?

asp.net - ASP.Net 控件是否通过 View 状态公开 SQL 查询?

除了用户名/密码之外的安全性?

.net - 进程内仅 WCF 命名管道通信?