Olá Pessoal!
Estou com problemas ao implementar a funcionalidade de atualização de roles do usuário.
Conforme o código abaixo, eu consigo recuperar e apresentar um usuário já com sua roles checkadas além daquelas dispníveis para checkagem:
@RequestMapping("/detalhe/{id}")
public ModelAndView detalhe(@PathVariable("id") long id){
ModelAndView modelAndView = new ModelAndView("usuarios/roles");
// Recupera o usuario e suas roles
Usuario usuario = dao.find(id);
List<Role> rolesDisponiveis = roleDAO.listAll();
List<Role> checkedRoles = usuario.getRoles();
usuario.setRoles(checkedRoles);
List<Role> roles = new ArrayList<Role>();
for (Role role:rolesDisponiveis){
roles.add(role);
}
modelAndView.addObject("usuario", usuario);
modelAndView.addObject("roles", roles);
return modelAndView;
}
Abaixo está a view que apresenta os dados:
<form:form action="${s:mvcUrl('UC#atualizarRoles').build() }" method="post" commandName="usuario">
<div class="form-group">
<form:label path="roles">Permissões: </form:label>
<form:checkboxes path="roles" items="${roles}" cssClass="form-control"/>
<form:errors path="roles" />
</div>
<button type="submit" class="btn btn-primary">Atualizar</button>
</form:form>
Eu não estou conseguindo implementar na classe controladora o método que vai receber meus objetos, fazer a atualização e encaminhar para a listagem de usuários.