Skip to content
Snippets Groups Projects
Commit 506f7678 authored by Fernando Pietchaki Domingues's avatar Fernando Pietchaki Domingues
Browse files

adicinado alteração de senha por parte do Usuário e corrigida via Administrador

parent a0ec6730
Branches
No related tags found
No related merge requests found
Showing with 118 additions and 15 deletions
......@@ -5,11 +5,14 @@ import javax.validation.Valid;
import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
import org.springframework.security.authentication.encoding.ShaPasswordEncoder;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import br.ufpr.c3sl.participatorio.Usuario;
......@@ -34,4 +37,54 @@ public class UsuarioController {
return "redirect:/usuarios/" + encodeUrlPathSegment(usuario.getId().toString(), httpServletRequest);
}
@RequestMapping(method = RequestMethod.PUT, produces = "text/html")
public String update(@Valid Usuario usuario, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
if (bindingResult.hasErrors()) {
populateEditForm(uiModel, usuario);
return "usuarios/update";
}
ShaPasswordEncoder encoder = new ShaPasswordEncoder(256);
usuario.setSenha(encoder.encodePassword(usuario.getSenha(), ""));
uiModel.asMap().clear();
usuario.merge();
return "redirect:/usuarios/" + encodeUrlPathSegment(usuario.getId().toString(), httpServletRequest);
}
@RequestMapping(value = "changepassword", method = RequestMethod.GET)
public String chancePassword() {
return "usuarios/changepassword";
}
@RequestMapping(value = "accepted", method = RequestMethod.GET)
public String accepted() {
return "usuarios/accepted";
}
@RequestMapping(value = "error", method = RequestMethod.GET)
public String error() {
return "usuarios/error";
}
@RequestMapping(value = "updatepassword", method = RequestMethod.GET)
public String updatePassword(@RequestParam(value = "oldpassword", required = true) String opass,
@RequestParam(value = "newpassword", required = true) String npass) {
Usuario p = (Usuario) Usuario.entityManager().createNativeQuery("select * from usuario where login='"
+SecurityContextHolder.getContext().getAuthentication().getName()+"'",
Usuario.class).getSingleResult();
ShaPasswordEncoder encoder = new ShaPasswordEncoder(256);
if (!(p.getSenha().equals(encoder.encodePassword(opass, ""))))
return "redirect:error";
p.setSenha(encoder.encodePassword(npass, ""));
p.merge();
return "redirect:accepted";
}
}
......@@ -9,9 +9,7 @@ import br.ufpr.c3sl.participatorio.web.UsuarioController;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -48,17 +46,6 @@ privileged aspect UsuarioController_Roo_Controller {
return "usuarios/list";
}
@RequestMapping(method = RequestMethod.PUT, produces = "text/html")
public String UsuarioController.update(@Valid Usuario usuario, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
if (bindingResult.hasErrors()) {
populateEditForm(uiModel, usuario);
return "usuarios/update";
}
uiModel.asMap().clear();
usuario.merge();
return "redirect:/usuarios/" + encodeUrlPathSegment(usuario.getId().toString(), httpServletRequest);
}
@RequestMapping(value = "/{id}", params = "form", produces = "text/html")
public String UsuarioController.updateForm(@PathVariable("id") Long id, Model uiModel) {
populateEditForm(uiModel, Usuario.findUsuario(id));
......
......@@ -67,6 +67,8 @@ label_br_ufpr_c3sl_participatorio_usuario_permissao=Permissão
label_br_ufpr_c3sl_participatorio_usuario_plural=Usuários
label_br_ufpr_c3sl_participatorio_usuario_senha=Senha
label_br_ufpr_c3sl_participatorio_usuario_version=Versão
label_br_ufpr_c3sl_participatorio_usuario_oldpass=Senha Atual
label_br_ufpr_c3sl_participatorio_usuario_newpass=Nova Senha
menu_category_ministerio_label=Ministério
menu_category_projeto_label=Projeto
......
......@@ -100,5 +100,6 @@ security_login_form_name=Usuário
security_login_form_name_message=Digite seu nome de Usuário
security_login_form_password=Senha
security_login_form_password_message=Digite sua senha
security_login_change_password=Alterar Senha
security_login_unsuccessful=Seu login não foi realizado, Tente outra vez. Motivo:
security_logout=Logout
......@@ -11,6 +11,16 @@
</span>
<c:if test="${pageContext['request'].userPrincipal != null}">
<c:out value=" | "/>
<span>
<spring:url value="/usuarios/changepassword" var="changepass"/>
<a href="${changepass}">
<spring:message code="security_login_change_password"/>
</a>
</span>
<c:out value=" | "/>
<span>
<spring:url value="/resources/j_spring_security_logout" var="logout"/>
<a href="${logout}">
......
......@@ -11,6 +11,8 @@
<table:column id="c_br_ufpr_c3sl_participatorio_Projeto_demanda" property="demanda" z="K99mnRN9vX7sE9XtHufPcJBkBdg="/>
<!-- <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" property="outroAcao" z="KDK14ptwJLWXh4xCooeqI+wBnJk="/> -->
<table:column id="c_br_ufpr_c3sl_participatorio_Projeto_ministerio" property="ministerio" z="qYUkNm475DOx0s81JEz3ff7BQho="/>
<table:column id="c_br_ufpr_c3sl_participatorio_Projeto_pai" property="pai" z="JnX374OPNV+3oLlfOcMYu3wG024="/>
<table:column id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" property="outroAcao" z="KDK14ptwJLWXh4xCooeqI+wBnJk="/>
</table:table>
</page:list>
</sec:authorize>
......
<div xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.page contentType="text/html;charset=UTF-8" />
<jsp:output omit-xml-declaration="yes" />
<spring:message var="app_name" code="application_name" htmlEscape="false" />
<spring:message var="title" code="welcome_titlepane" arguments="${app_name}" htmlEscape="false" />
<util:panel id="title" title="Aceito">
<b>
Operação realizada com sucesso.
</b>
</util:panel>
</div>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
<jsp:directive.page import="org.springframework.ui.Model"/>
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<jsp:output omit-xml-declaration="yes"/>
<b>Informe sua senha antiga e sua nova senha.</b>
<p/>
<form name="chancepassword" action="updatepassword" method="get">
<field:input field="oldpassword" type="password" id="c_br_ufpr_c3sl_participatorio_usuario_oldpass" disableFormBinding="true" z="user_managed"/>
<field:input field="newpassword" type="password" id="c_br_ufpr_c3sl_participatorio_usuario_newpass" disableFormBinding="true" z="user_managed"/>
<input type="submit" value="Save"/>
</form>
</div>
<div xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.page contentType="text/html;charset=UTF-8" />
<jsp:output omit-xml-declaration="yes" />
<spring:message var="app_name" code="application_name" htmlEscape="false" />
<spring:message var="title" code="welcome_titlepane" arguments="${app_name}" htmlEscape="false" />
<util:panel id="title" title="Error">
<b>
Não foi possível concluir a operação.
</b>
</util:panel>
</div>
......@@ -13,4 +13,13 @@
<definition extends="default" name="usuarios/update">
<put-attribute name="body" value="/WEB-INF/views/usuarios/update.jspx"/>
</definition>
<definition extends="default" name="usuarios/accepted">
<put-attribute name="body" value="/WEB-INF/views/usuarios/accepted.jspx"/>
</definition>
<definition extends="default" name="usuarios/error">
<put-attribute name="body" value="/WEB-INF/views/usuarios/error.jspx"/>
</definition>
<definition extends="default" name="usuarios/changepassword">
<put-attribute name="body" value="/WEB-INF/views/usuarios/changepassword.jspx"/>
</definition>
</tiles-definitions>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment