From 048a00a4a43b35bee06754f3cb2457500af03c2c Mon Sep 17 00:00:00 2001 From: 1yuee Date: Mon, 19 Jun 2023 23:27:36 +0400 Subject: [PATCH] i'm done --- data.mv.db | Bin 0 -> 57344 bytes .../lab1/SecurityConfiguration.java | 1 - .../webproglabs/lab1/lab34/dto/ShopDto.java | 4 +- .../lab1/lab34/mvc/ShopMvcController.java | 57 ++++++++++++++++++ src/main/resources/templates/default.html | 2 - src/main/resources/templates/error.html | 13 ++++ src/main/resources/templates/shopEdit.html | 21 +++++++ src/main/resources/templates/shops.html | 27 +++++++++ src/main/resources/templates/signup.html | 3 +- 9 files changed, 123 insertions(+), 5 deletions(-) create mode 100644 data.mv.db create mode 100644 src/main/java/com/webproglabs/lab1/lab34/mvc/ShopMvcController.java create mode 100644 src/main/resources/templates/error.html create mode 100644 src/main/resources/templates/shopEdit.html create mode 100644 src/main/resources/templates/shops.html diff --git a/data.mv.db b/data.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..768a93622cb81b1a2adae64de2c94c4f9da284bd GIT binary patch literal 57344 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 KaW1%Y{{H~p*o|2L literal 0 HcmV?d00001 diff --git a/src/main/java/com/webproglabs/lab1/SecurityConfiguration.java b/src/main/java/com/webproglabs/lab1/SecurityConfiguration.java index 307682f..87d3bc4 100644 --- a/src/main/java/com/webproglabs/lab1/SecurityConfiguration.java +++ b/src/main/java/com/webproglabs/lab1/SecurityConfiguration.java @@ -53,7 +53,6 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { - http.exceptionHandling().authenticationEntryPoint(delegatingEntryPoint()); http.headers().frameOptions().sameOrigin().and() .cors().and() diff --git a/src/main/java/com/webproglabs/lab1/lab34/dto/ShopDto.java b/src/main/java/com/webproglabs/lab1/lab34/dto/ShopDto.java index 0c27ba5..0bd54e5 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/dto/ShopDto.java +++ b/src/main/java/com/webproglabs/lab1/lab34/dto/ShopDto.java @@ -29,7 +29,9 @@ public class ShopDto { public String getName() { return Name; } - + public void setName(String name) { + this.Name = name; + } public List getProducts() { return Products; } diff --git a/src/main/java/com/webproglabs/lab1/lab34/mvc/ShopMvcController.java b/src/main/java/com/webproglabs/lab1/lab34/mvc/ShopMvcController.java new file mode 100644 index 0000000..e6f078f --- /dev/null +++ b/src/main/java/com/webproglabs/lab1/lab34/mvc/ShopMvcController.java @@ -0,0 +1,57 @@ +package com.webproglabs.lab1.lab34.mvc; + +import com.webproglabs.lab1.lab34.dto.ShopDto; +import com.webproglabs.lab1.lab34.model.Shop; +import com.webproglabs.lab1.lab34.model.enums.UserRole; +import com.webproglabs.lab1.lab34.services.ShopService; +import org.springframework.security.access.annotation.Secured; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +@Controller +@RequestMapping("/shops") +public class ShopMvcController { + private final ShopService shopService; + + public ShopMvcController(ShopService shopService) { + this.shopService = shopService; + } + + @GetMapping + @Secured({UserRole.AsString.ADMIN}) + public String getShops(Model model) { + model.addAttribute("shops", shopService.findAllShops().stream().map(ShopDto::new).toList()); + model.addAttribute("shopDto", new ShopDto()); + return "shops"; + } + + @GetMapping(value = {"/edit/{Id}"}) + @Secured({UserRole.AsString.ADMIN}) + public String getShopEdit(@PathVariable Long Id, Model model) { + model.addAttribute("shop", shopService.findShopById(Id)); + model.addAttribute("shopDto", new ShopDto()); + return "shopEdit"; + } + + @PostMapping(value = {"/edit/{Id}"}) + @Secured({UserRole.AsString.ADMIN}) + public String editShop(@PathVariable Long Id, @ModelAttribute ShopDto shopDto) { + shopService.updateShop(Id, shopDto.getName()); + return "redirect:/shops"; + } + + @PostMapping(value = {"/create"}) + @Secured({UserRole.AsString.ADMIN}) + public String createShop(@ModelAttribute ShopDto shopDto) { + shopService.addShop(shopDto.getName()); + return "redirect:/shops"; + } + + @PostMapping(value = {"/delete/{Id}"}) + @Secured({UserRole.AsString.ADMIN}) + public String deleteShop(@PathVariable Long Id) { + shopService.deleteShop(Id); + return "redirect:/shops"; + } +} diff --git a/src/main/resources/templates/default.html b/src/main/resources/templates/default.html index cf4fb2d..8cc278c 100644 --- a/src/main/resources/templates/default.html +++ b/src/main/resources/templates/default.html @@ -22,8 +22,6 @@

- Профили - Лента Выход diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html new file mode 100644 index 0000000..509d6ac --- /dev/null +++ b/src/main/resources/templates/error.html @@ -0,0 +1,13 @@ + + + +

+ + \ No newline at end of file diff --git a/src/main/resources/templates/shopEdit.html b/src/main/resources/templates/shopEdit.html new file mode 100644 index 0000000..81b24f4 --- /dev/null +++ b/src/main/resources/templates/shopEdit.html @@ -0,0 +1,21 @@ + + + +
+
Name
+
+
+

New Name:

+ + +
+
+

+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/shops.html b/src/main/resources/templates/shops.html new file mode 100644 index 0000000..b73a7a1 --- /dev/null +++ b/src/main/resources/templates/shops.html @@ -0,0 +1,27 @@ + + + +
+ +
+
+
+ +
+
+ +
+
+ +
+

Name:

+ + +
+ +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/signup.html b/src/main/resources/templates/signup.html index b511ffa..ccdec60 100644 --- a/src/main/resources/templates/signup.html +++ b/src/main/resources/templates/signup.html @@ -1,7 +1,8 @@ + layout:decorate="~{default}" +>