@Override protected ListagemResult<Usuario> getLista(WebRequestContext request, UsuarioFiltro filtro) { ListagemResult<Usuario> result = super.getLista(request, filtro); List<Usuario> listaUsuario = result.list(); if (request.getRequestQuery().contains("util")) { StringBuilder ids = new StringBuilder(); for (Usuario usuario : listaUsuario) { ids.append("'" + usuario.getNome() + "|" + usuario.getEmail() + "',"); } if (ids.length() > 0) { ids.delete(ids.length() - 1, ids.length()); } request.setAttribute("idsFormatados", ids.toString()); } PlanoGestao planoGestaoAtual = planoGestaoService.obtemPlanoGestaoAtual(); for (Usuario usuario : listaUsuario) { List<UnidadeGerencial> lista = unidadeGerencialService.loadByUsuarioPlanoGestao(usuario, planoGestaoAtual); if (lista != null && lista.size() > 0) { usuario.setUgsAtuais(CollectionsUtil.listAndConcatenate(lista, "sigla", ", ")); } } return result; }
@Override protected void entrada(WebRequestContext request, Usuario form) throws Exception { if (form.getId() == null) request.setAttribute("novo", true); // apenas se o usuario digitar que será verificado novamente form.setSenha(null); form.setVerificaSenha(null); // popular os perfis do usuario if (form.getId() != null) { form.setPapeis(usuarioPapelService.getPapeis(form)); } }
@Override protected void excluir(WebRequestContext request, Usuario bean) throws Exception { // Verifica se quem foi excluído é quem esta logado, se for invalida a sessão Usuario usuario = (Usuario) Neo.getUser(); boolean invalidar = bean.getId().equals(usuario.getId()) ? true : false; super.excluir(request, bean); if (invalidar) { request.getSession().invalidate(); } }
@Override protected void validateBean(Usuario bean, BindException errors) { if (bean.getId() == null) { // esta validação não é feita no bean pq a regra de negocio permite na alteração // do usuario não alterar a senha if (bean.getSenha() == null || bean.getSenha().equals("")) { errors.reject("É necessário informar a senha.", "É necessário informar a senha."); } } if (bean.getId() == null) { if (!bean.getSenha().equals("")) { if (bean.getVerificaSenha() == null || bean.getVerificaSenha().equals("")) { errors.reject( "É necessário a confirmação da senha.", "É necessário a confirmação da senha."); } if (bean.getVerificaSenha() != null || !bean.getVerificaSenha().equals("")) { if (!bean.getSenha().equals(bean.getVerificaSenha())) { errors.reject("As senhas digitadas não conferem.", "As senhas digitadas não conferem."); } else { if (bean.getId() == null) { // criptogafrar a senha bean.setSenha(DigestUtils.md5Hex(bean.getSenha())); } } } } } // verificar se já existe o login informado if (!bean.getLogin().equals("") && bean.getId() == null) { Boolean existe = usuarioService.verificaExisteLogin(bean.getLogin()); if (existe) { errors.reject( "Este login já existe. Favor informar outro.", "Este login já existe. Favor informar outro."); } } // se o usuario alterou o login verificar se este já existe if (!bean.getLogin().equals("") && bean.getId() != null) { Usuario usuario = usuarioService.obtemLogin(bean); if (!usuario.getLogin().equals("") && !bean.getLogin().equals(usuario.getLogin())) { Boolean existe = usuarioService.verificaExisteLogin(bean.getLogin()); if (existe) { errors.reject( "Este login já existe. Favor informar outro.", "Este login já existe. Favor informar outro."); } } } if (bean.getPapeis() == null || bean.getPapeis().size() == 0) { errors.reject("É necessário pelo menos um perfil.", "É necessário pelo menos um perfil."); } if (bean.getFoto() != null && bean.getFoto().getSize() > 0) { if (bean.getFoto().getContent().length > 500000) { errors.reject( "O tamanho máximo permitido para o arquivo é 500kb.", "O tamanho máximo permitido para o arquivo é 500kb."); } // 400x500 if (!"image/jpeg".equals(bean.getFoto().getContenttype()) && !"image/jpg".equals(bean.getFoto().getContenttype())) { errors.reject( "O formato da imagem é inválido. É permitido apenas jpeg.", "O formato da imagem é inválido. É permitido apenas jpeg."); } try { BufferedImage image = ImageIO.read(new ByteArrayInputStream(bean.getFoto().getContent())); if (image != null && image.getWidth() > 400) { errors.reject( "O tamanho máximo permitido para o arquivo é de 400px de largura", "O tamanho máximo permitido para o arquivo é de 400px de largura"); } if (image != null && image.getHeight() > 500) { errors.reject( "A tamanho máximo permitido para o arquivo é de 500px de altura", "O tamanho máximo permitido para o arquivo é de 500px de altura"); } } catch (IOException e) { errors.reject("Não foi possível carregar a imagem", "Não foi possível carregar a imagem"); } } super.validateBean(bean, errors); }