2016-08-16 31 views
0

應用信息:的Grails:禁用表單輸入取決於用戶

  • Grails的版本:3.1.8
  • Groovy的版本:2.4.6
  • JVM版本:1.8.0_60
  • 春季安全: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>}"/> 

我的邏輯是在只讀中嵌入一個Groovy表達式。

回答

1

試試這個:

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