Grails:根据用户

时间:2016-08-16 10:18:17

标签: grails spring-security

应用信息:

  • Grails版本:3.1.8
  • Groovy版本:2.4.6
  • JVM版本:1.8.0_60
  • Spring Security:spring-security-core:3.1.1

我有一个Grails表单,并希望根据用户的类型只读取某些字段。我可以使用以下taglib来确定用户。

<sec:ifAllGranted roles='ROLE_ADMIN,ROLE_SUPERVISOR'>
...
secure stuff here
...
</sec:ifAllGranted>

我可以使用readonly = "readonly"禁用输入字段。当试图结合2时,结果不是我所希望的。以下是我试图做的事情:

<g:textField name="assessment" id="assessment" class="form-control"
    value="${thePerson.assessment}" readonly="${<sec:ifAllGranted roles='ROLE_ADMIN'> "readonly" </sec:ifAllGranted>}"/>

我的逻辑是在readonly中嵌入一个Groovy Expression。

1 个答案:

答案 0 :(得分:1)

试试这个:

<input type='text' name="assessment" id="assessment" class="form-control" value="${thePerson.assessment}" ${sec.ifAllGranted(roles:'ROLE_ADMIN'){ 'readonly="readonly"' }} />