From adf1502b2b46432301202b33b0f40646864052bd Mon Sep 17 00:00:00 2001 From: Seil0 Date: Sun, 8 Dec 2019 12:24:28 +0100 Subject: [PATCH] added a minimal login dialog * added session cookie being set on login, login-data is not stored or validated --- .../hso/ecommerce/app/RequestController.java | 31 +++++++++++++++++-- .../java/org/hso/ecommerce/objects/User.java | 23 ++++++++++++++ .../src/main/resources/static/css/ecom.css | 28 +++++++++++++++++ .../resources/templates/fragments/header.html | 29 ++++++++++++++++- .../src/main/resources/templates/home.html | 6 ++-- .../main/resources/templates/register.html | 15 +++++++++ 6 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 prototype/src/main/java/org/hso/ecommerce/objects/User.java create mode 100644 prototype/src/main/resources/templates/register.html diff --git a/prototype/src/main/java/org/hso/ecommerce/app/RequestController.java b/prototype/src/main/java/org/hso/ecommerce/app/RequestController.java index bbc4024..9dd209f 100644 --- a/prototype/src/main/java/org/hso/ecommerce/app/RequestController.java +++ b/prototype/src/main/java/org/hso/ecommerce/app/RequestController.java @@ -1,9 +1,13 @@ package org.hso.ecommerce.app; +import org.hso.ecommerce.objects.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; +import java.util.UUID; @Controller public class RequestController { @@ -14,7 +18,8 @@ public class RequestController { } @GetMapping("/home") - public String home() { + public String home(Model model) { + model.addAttribute(new User()); return "home"; } @@ -24,4 +29,24 @@ public class RequestController { return "greeting"; } + @RequestMapping(value="/home", method=RequestMethod.POST, params="action=login") + public String login(@ModelAttribute User user, HttpServletResponse response) { + // do the login magic and get a loginToken + System.out.println(user.getUname()); + System.out.println(user.getPwd()); + + String loginToken = UUID.randomUUID().toString(); + + // set the loginToken as session cookie + Cookie cookie = new Cookie("loginToken", loginToken); + response.addCookie(cookie); + return "redirect:/home"; + } + + @RequestMapping("/register") + public String register(@CookieValue(value = "loginToken", defaultValue = "") String loginToken) { + System.out.println(loginToken); + return "register"; + } + } diff --git a/prototype/src/main/java/org/hso/ecommerce/objects/User.java b/prototype/src/main/java/org/hso/ecommerce/objects/User.java new file mode 100644 index 0000000..8d8c789 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/objects/User.java @@ -0,0 +1,23 @@ +package org.hso.ecommerce.objects; + +public class User { + + private String uname; + private String pwd; + + public String getUname() { + return uname; + } + + public void setUname(String uname) { + this.uname = uname; + } + + public String getPwd() { + return pwd; + } + + public void setPwd(String pwd) { + this.pwd = pwd; + } +} diff --git a/prototype/src/main/resources/static/css/ecom.css b/prototype/src/main/resources/static/css/ecom.css index 47ae8cb..1d63c08 100644 --- a/prototype/src/main/resources/static/css/ecom.css +++ b/prototype/src/main/resources/static/css/ecom.css @@ -402,3 +402,31 @@ label { font-size: var(--u1); text-align: right; } + + +/* + * Prototype stuff + */ +.dialog { + display: none; /* Hidden by default */ + position: fixed; /* Stay in place */ + z-index: 1; + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + overflow: auto; /* Enable scroll if needed */ + padding-top: 60px; +} + +.dialog-content { + background-color: var(--c-black); + margin: 5% auto 15% auto; /* 5% from the top, 15% from the bottom and centered */ + border: 1px solid #888; + width: 50%; /* Could be more or less, depending on screen size */ + +} + +.container { + padding: 16px; +} diff --git a/prototype/src/main/resources/templates/fragments/header.html b/prototype/src/main/resources/templates/fragments/header.html index 6aba443..e631277 100644 --- a/prototype/src/main/resources/templates/fragments/header.html +++ b/prototype/src/main/resources/templates/fragments/header.html @@ -13,7 +13,34 @@ - + + +
+
+
+ + + + + + + + +
+ +
+ + Forgot password? +
+
+ +
+ + diff --git a/prototype/src/main/resources/templates/home.html b/prototype/src/main/resources/templates/home.html index 1b002df..0f83442 100644 --- a/prototype/src/main/resources/templates/home.html +++ b/prototype/src/main/resources/templates/home.html @@ -68,7 +68,7 @@
- +

Personalisierte Empfehlungen

@@ -78,7 +78,9 @@

Werde jetzt Kunde

Jetzt Kunde werden und viele Vorteile sichern, wie z.B. personalisierte Empfehlungen.

- +
+ +
diff --git a/prototype/src/main/resources/templates/register.html b/prototype/src/main/resources/templates/register.html new file mode 100644 index 0000000..005062d --- /dev/null +++ b/prototype/src/main/resources/templates/register.html @@ -0,0 +1,15 @@ + + + + + e-commerce + + + + +
+ +
+ + + \ No newline at end of file