diff --git a/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java b/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java index abf0c8cd3..651272a81 100644 --- a/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java +++ b/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java @@ -46,7 +46,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { .antMatchers("/usuarios/new").permitAll() .antMatchers("/usuarios/**").hasAnyAuthority("usuario") - .antMatchers("/admin/**").hasAnyAuthority("admin") + .antMatchers("/administrators/**").hasAnyAuthority("admin") .antMatchers("/owners/**").hasAnyAuthority("owner", "admin") diff --git a/src/main/java/org/springframework/cheapy/repository/ClientRepository.java b/src/main/java/org/springframework/cheapy/repository/ClientRepository.java index 54c696f00..ac016a82c 100644 --- a/src/main/java/org/springframework/cheapy/repository/ClientRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/ClientRepository.java @@ -1,5 +1,7 @@ package org.springframework.cheapy.repository; +import java.util.List; + import org.springframework.cheapy.model.Client; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.Repository; @@ -11,6 +13,11 @@ public interface ClientRepository extends Repository { @Transactional(readOnly = true) Client findByUsername(String username); + @Query("SELECT client FROM Client client") + @Transactional(readOnly = true) + List findAllClient(); + + void save(Client client); } diff --git a/src/main/java/org/springframework/cheapy/service/ClientService.java b/src/main/java/org/springframework/cheapy/service/ClientService.java index c8404afb9..a92d25a75 100644 --- a/src/main/java/org/springframework/cheapy/service/ClientService.java +++ b/src/main/java/org/springframework/cheapy/service/ClientService.java @@ -1,5 +1,7 @@ package org.springframework.cheapy.service; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cheapy.model.Client; import org.springframework.cheapy.repository.ClientRepository; @@ -26,8 +28,16 @@ public class ClientService { return this.clientRepository.findByUsername(username); } + @Transactional + public Client findByUsername(String username) throws DataAccessException { + return this.clientRepository.findByUsername(username); + } + public void saveClient(final Client client) throws DataAccessException { this.clientRepository.save(client); } - + @Transactional + public List findAllClient() throws DataAccessException { + return this.clientRepository.findAllClient(); + } } diff --git a/src/main/java/org/springframework/cheapy/web/AdministratorController.java b/src/main/java/org/springframework/cheapy/web/AdministratorController.java index f1c9b77dc..d5e001f77 100644 --- a/src/main/java/org/springframework/cheapy/web/AdministratorController.java +++ b/src/main/java/org/springframework/cheapy/web/AdministratorController.java @@ -1,25 +1,16 @@ package org.springframework.cheapy.web; -import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; -import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import org.springframework.beans.BeanUtils; -import org.springframework.cheapy.model.FoodOffer; -import org.springframework.cheapy.model.NuOffer; -import org.springframework.cheapy.model.SpeedOffer; -import org.springframework.cheapy.model.StatusOffer; -import org.springframework.cheapy.model.TimeOffer; +import org.springframework.cheapy.model.Client; import org.springframework.cheapy.model.Usuario; import org.springframework.cheapy.service.ClientService; import org.springframework.cheapy.service.UsuarioService; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; -import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -30,9 +21,11 @@ public class AdministratorController { private static final String VIEWS_USUARIO_CREATE_OR_UPDATE_FORM = "usuarios/createOrUpdateUsuarioForm"; private final UsuarioService usuarioService; + private final ClientService clientService; public AdministratorController(final UsuarioService usuarioService, ClientService clientService) { this.usuarioService = usuarioService; + this.clientService=clientService; } @GetMapping("/administrators/usuarios") @@ -42,13 +35,26 @@ public class AdministratorController { return "usuarios/usuariosList"; } + @GetMapping("/administrators/clients") + public String processFindClientesForm(Map model) { + List clientLs = this.clientService.findAllClient(); + model.put("clientLs", clientLs); + return "clients/clientsList"; + } @GetMapping("/administrators/usuarios/{username}") - public String processShowForm(@PathVariable("username") String username, Map model) { + public String processUsuarioShowForm(@PathVariable("username") String username, Map model) { Usuario usuario = this.usuarioService.findByUsername(username); model.put("usuario", usuario); return "usuarios/usuariosShow"; } + @GetMapping("/administrators/clients/{username}") + public String processClientShowForm(@PathVariable("username") String username, Map model) { + Client client = this.clientService.findByUsername(username); + model.put("client", client); + return "clients/clientShow"; + } + @GetMapping(value = "/administrators/usuarios/{username}/disable") public String disableUsuario(@PathVariable("username") final String username, final ModelMap model) { @@ -56,6 +62,7 @@ public class AdministratorController { model.put("usuario", usuario); return "usuarios/usuariosDisable"; } + @PostMapping(value = "/administrators/usuarios/{username}/disable") public String disableUsuarioForm(@PathVariable("username") final String username, final ModelMap model, final HttpServletRequest request) { @@ -65,4 +72,21 @@ public class AdministratorController { this.usuarioService.saveUsuario(usuario); return "redirect:/administrators/usuarios"; } + + + @GetMapping(value = "/administrators/clients/{username}/disable") + public String disableClient(@PathVariable("username") final String username, final ModelMap model) { + + Client client = this.clientService.findByUsername(username); + model.put("client", client); + return "clients/clientDisable"; + } + @PostMapping(value = "/administrators/clients/{username}/disable") + public String disableClientForm(@PathVariable("username") final String username, final ModelMap model, final HttpServletRequest request) { + + Client client = this.clientService.findByUsername(username); + client.getUsuar().setEnabled(false); + this.clientService.saveClient(client); + return "redirect:/administrators/clients"; + } } diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp index 398ba4d07..66ff86179 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp @@ -67,11 +67,20 @@ - - - + + +
+ + + + + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientsList.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientsList.jsp new file mode 100644 index 000000000..464b7a0ec --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/clients/clientsList.jsp @@ -0,0 +1,55 @@ +<%@ page session="false" trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> + + + +

+ + +

No hay ningun Cliente.

+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/welcome.jsp b/src/main/webapp/WEB-INF/jsp/welcome.jsp index 580f03987..43be3e422 100644 --- a/src/main/webapp/WEB-INF/jsp/welcome.jsp +++ b/src/main/webapp/WEB-INF/jsp/welcome.jsp @@ -48,14 +48,6 @@ - - -
- -
-
diff --git a/src/main/webapp/WEB-INF/tags/menu.tag b/src/main/webapp/WEB-INF/tags/menu.tag index 40f426e7e..97f1d6ced 100644 --- a/src/main/webapp/WEB-INF/tags/menu.tag +++ b/src/main/webapp/WEB-INF/tags/menu.tag @@ -39,6 +39,20 @@ Mis ofertas + + + + + Clientes + + + + + + + Usuarios + +