2014-02-16 2 views
0

Возможно ли это? Если нет, то как мне фильтровать в моей gsp определенную роль для этого кода?Как фильтровать пользователя по весенней роли безопасности в домене

<div class="fieldcontain ${hasErrors(bean: tableInstance, field: 'user', 'error')} "> 
<label for="user"> 
    <g:message code="table.user.label" default="User" />   
</label> 
<g:select id="user" name="user.id" from="${rms.User.list()}" optionKey="id" value="${tableInstance?.user?.id}" class="many-to-one" noSelection="['null': '']"/> 

Сниппет выше для основных создания и редактирования функций

ответ

2

Использование sec:access тегов, предоставляемых плагин пружинными безопасности.

<sec:access expression="hasRole('ROLE')"> 
     <div class="fieldcontain ${hasErrors(bean: tableInstance, field: 'user', 'error')} "> 
     <label for="user"> 
      <g:message code="table.user.label" default="User" />   
     </label> 
     <g:select id="user" name="user.id" from="${rms.User.list()}" optionKey="id" value="${tableInstance?.user?.id}" class="many-to-one" noSelection="['null': '']"/> 
</sec:access> 

или вы можете использовать sec:ifAnyGranted тег

<sec:ifAnyGranted roles="ROLE1, ROLE2, ..."> 
    .... 
</sec:ifAnyGranted> 

EDIT

def users = UserRole.findAllByRole(Role.get('ROLE'))*.user.unique() 
+0

эти теги только визуализировать Фрагмент кода, если это правда. что, если я хочу только получить пользователей с ROLE_sampleROLE из user.list()? – Jan

+0

@MuduM см. Обновленный фрагмент. – emilan

+0

Это мой код 'def users = SecUserSecRole.findAllBySecRole (SecRole.get ('Server')) *. SecUser.unique()'. хм по какой-то причине он дает мне ошибку «Предоставлен идентификатор неправильного типа для класса rms.SecRole. Ожидаемый: класс java.lang.Long, получил класс java.lang.String'. im используя автогенерируемые методы по умолчанию для плагина весной безопасности. – Jan

Смежные вопросы