fixes_ui #66

Merged
Seil0 merged 3 commits from fixes_ui into master 2020-06-13 11:03:21 +02:00
4 changed files with 196 additions and 195 deletions

View File

@ -1,17 +1,7 @@
package org.hso.ecommerce.app; package org.hso.ecommerce.app;
import org.hso.ecommerce.entities.user.User;
import org.hso.ecommerce.repos.user.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Optional;
/** /**
* TODO clean up this class * TODO clean up this class
@ -19,62 +9,6 @@ import java.util.Optional;
@Controller @Controller
public class RequestController { public class RequestController {
@Autowired
private final UserRepository userRepository = null;
static int notSoRandom = 0;
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/login")
public String loginPost(
HttpServletRequest request,
HttpServletResponse response,
@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session
) {
String gto = (String) session.getAttribute("afterLogin");
Optional<User> user = userRepository.findByEmail(username);
if (!user.isPresent()) {
request.setAttribute("error", "Email Adresse falsch.");
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "login";
}
if (!user.get().validatePassword(password)) {
request.setAttribute("error", "Passwort falsch.");
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "login";
}
if (!user.get().isActive) {
request.setAttribute("error", "User ist deaktiviert.");
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "login";
}
session.setAttribute("userId", user.get().getId());
if (gto != null && gto.startsWith("/")) {
return "redirect:" + gto;
} else {
return "redirect:/";
}
}
@PostMapping("/logout")
public String logoutPost(HttpServletResponse response,
HttpSession session
) {
session.removeAttribute("userId");
return "redirect:/";
}
@GetMapping("/intern/customerOrders/") @GetMapping("/intern/customerOrders/")
public String internCustomerOrder() { public String internCustomerOrder() {
return "intern/customerOrders/index"; return "intern/customerOrders/index";
@ -84,5 +18,4 @@ public class RequestController {
public String internCustomerOrdersId() { public String internCustomerOrdersId() {
return "intern/customerOrders/id"; return "intern/customerOrders/id";
} }
} }

View File

@ -1,8 +1,69 @@
package org.hso.ecommerce.controller; package org.hso.ecommerce.controller;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.hso.ecommerce.entities.user.User;
import org.hso.ecommerce.repos.user.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller @Controller
//@RequestMapping("...") @RequestMapping("/")
public class LoginController { public class LoginController {
@Autowired
private final UserRepository userRepository = null;
@GetMapping("login")
public String login() {
return "login";
}
@PostMapping("login")
public String loginPost(HttpServletRequest request, HttpServletResponse response,
@RequestParam("username") String username, @RequestParam("password") String password, HttpSession session) {
String gto = (String) session.getAttribute("afterLogin");
Optional<User> user = userRepository.findByEmail(username);
if (!user.isPresent()) {
request.setAttribute("error", "Die Email Adresse falsch.");
Outdated
Review

Wäre "Die Email Adresse ist falsch." nicht besser?

Generell würde ich für Email und Passwort die gleiche Fehlermeldung zurück geben ("Die Email Adresse oder das Passwort ist falsch.").

Wäre "Die Email Adresse ist falsch." nicht besser? Generell würde ich für Email und Passwort die gleiche Fehlermeldung zurück geben ("Die Email Adresse oder das Passwort ist falsch.").
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "login";
}
if (!user.get().validatePassword(password)) {
request.setAttribute("error", "Das Passwort ist falsch.");
Outdated
Review

Wäre “Das Passwort ist falsch.” nicht besser?

Wäre “Das Passwort ist falsch.” nicht besser?
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "login";
}
if (!user.get().isActive) {
request.setAttribute("error", "Dieses Konto ist deaktiviert..");
Outdated
Review

Wäre “Dieses Konto ist deaktiviert.” nicht besser?

Wäre “Dieses Konto ist deaktiviert.” nicht besser?
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "login";
}
session.setAttribute("userId", user.get().getId());
if (gto != null && gto.startsWith("/")) {
return "redirect:" + gto;
} else {
return "redirect:/";
}
}
@PostMapping("logout")
public String logoutPost(HttpServletResponse response, HttpSession session) {
session.removeAttribute("userId");
return "redirect:/";
}
} }

View File

@ -22,29 +22,22 @@ public class RegisterController {
private final UserRepository userRepository = null; private final UserRepository userRepository = null;
@PostMapping("/register") @PostMapping("/register")
public String registerPost( public String registerPost(HttpServletRequest request, HttpServletResponse response,
HttpServletRequest request, @RequestParam("username") String username, @RequestParam("password") String password,
HttpServletResponse response, @RequestParam("password2") String password2, @RequestParam("salutation") String salutation,
@RequestParam("username") String username, @RequestParam("name") String name, @RequestParam("address") String address,
@RequestParam("password") String password, @RequestParam("type") String type, // TODO store
@RequestParam("password2") String password2, @RequestParam("ad") String ad, // TODO store
@RequestParam("salutation") String salutation, HttpSession session) {
@RequestParam("name") String name,
@RequestParam("address") String address,
@RequestParam("type") String type,
@RequestParam("ad") String ad,
HttpSession session
)
{
Optional<User> user = userRepository.findByEmail(username); Optional<User> user = userRepository.findByEmail(username);
if (user.isPresent()) { if (user.isPresent()) {
request.setAttribute("error", "Email Adresse existiert bereits!"); request.setAttribute("error", "Die Email Adresse existiert bereits.");
Outdated
Review

Auch hier "Die Email Adresse existiert bereits." ?

Auch hier "Die Email Adresse existiert bereits." ?
response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
return "register"; return "register";
} }
if (!password.equals(password2)) { if (!password.equals(password2)) {
request.setAttribute("error", "Passwörter sind nicht gleich"); request.setAttribute("error", "Die Passwörter stimmen nicht überein.");
Outdated
Review

"Die Passwörter sind nicht gleich." ?

"Die Passwörter sind nicht gleich." ?
response.setStatus(HttpServletResponse.SC_BAD_REQUEST); response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return "register"; return "register";
} }
@ -71,9 +64,17 @@ public class RegisterController {
user = userRepository.findByEmail(username); user = userRepository.findByEmail(username);
session.setAttribute("userId", user.get().getId()); session.setAttribute("userId", user.get().getId());
String gto = (String) session.getAttribute("afterLogin");
//login after register
if (gto != null && gto.startsWith("/")) {
return "redirect:" + gto;
} else {
return "redirect:/"; return "redirect:/";
} }
}
@GetMapping("/register") @GetMapping("/register")
public String register() { public String register() {
return "register"; return "register";

View File

@ -1,16 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="de" dir="ltr" xmlns:th="http://www.thymeleaf.org"> <html lang="de" dir="ltr" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.75, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=0.75, user-scalable=no">
<title>Neuen Account erstellen</title> <title>Neuen Account erstellen</title>
<link rel="stylesheet" th:href="@{/css/ecom.css}"/> <link rel="stylesheet" th:href="@{/css/ecom.css}"/>
<script th:src="@{/js/scrollToContent.js}"></script> <script th:src="@{/js/scrollToContent.js}"></script>
</head> </head>
<body> <body>
<nav th:replace="fragments/header :: header">Header</nav> <nav th:replace="fragments/header :: header">Header</nav>
<main class="modal"> <main class="modal">
@ -25,21 +21,17 @@
<label for="username">Email Adresse</label> <label for="username">Email Adresse</label>
<input class="full-width" type="text" name="username" placeholder="Email Adresse" id="username" required> <input class="full-width" type="text" name="username" placeholder="Email Adresse" id="username" required>
</div> </div>
<div> <div>
<label for="password">Passwort</label> <label for="password">Passwort</label>
<input class="full-width" type="password" name="password" placeholder="Passwort" id="password" required> <input class="full-width" type="password" name="password" placeholder="Passwort" id="password" required>
</div> </div>
<div> <div>
<label for="password2">Passwort wiederholen</label> <label for="password2">Passwort wiederholen</label>
<input class="full-width" type="password" name="password2" placeholder="Passwort" id="password2" required> <input class="full-width" type="password" name="password2" placeholder="Passwort" id="password2" required>
</div> </div>
<div> <div>
<h2> Rechungs- und Lieferinformation </h2> <h2> Rechungs- und Lieferinformation </h2>
</div> </div>
<div class="col-2"> <div class="col-2">
<div> <div>
<label for="salutation">Anrede</label> <label for="salutation">Anrede</label>
@ -57,22 +49,36 @@
<input class="full-width" type="text" name="name" id="name" placeholder="Nachname Vorname" required/> <input class="full-width" type="text" name="name" id="name" placeholder="Nachname Vorname" required/>
</div> </div>
</div> </div>
<div> <div>
<label for="address">Anschrift</label> <label for="address">Anschrift</label>
<textarea rows="5" class="full-width" type="text" name="address" id="address" <textarea rows="5" class="full-width" type="text" name="address" id="address"
placeholder="Optional: Zusatz&#10;Optional: Unternehmen&#10;Straße Hausnummer&#10;Postleitzeit Ort&#10;Land"></textarea> placeholder="Optional: Zusatz&#10;Optional: Unternehmen&#10;Straße Hausnummer&#10;Postleitzeit Ort&#10;Land"></textarea>
</div> </div>
<fieldset>
<input type="radio" id="type-priv" name="type" value="priv">
<label for="type-priv">Ich bin Privatkunde</label><br>
Outdated
Review

for noch auf die richtige ID setzen.

Auch bei type-bus, ad-y, ad-n

`for` noch auf die richtige ID setzen. Auch bei `type-bus`, `ad-y`, `ad-n`
<input type="radio" id="type-bus" name="type" value="bus">
<label for="type-bus">Ich bin Geschäftskunde</label><br>
</fieldset>
<div>
<h2> Werbung </h2>
</div>
<div>
<fieldset>
<input type="radio" id="ad-y" name="ad" value="y">
<label for="ad-y">Ich möchte Werbung erhalten.</label><br>
<input type="radio" id="ad-n" name="ad" value="n">
<label for="ad-n">Ich möchte keine Werbung erhalten.</label><br>
</fieldset>
</div>
<div> <div>
<button class="full-width" type="submit" name="action" value="login">Registeren</button> <button class="full-width" type="submit" name="action" value="login">Registeren</button>
<a th:href="@{/terms}"> <a th:href="@{/terms}">
Unsere AGBs finden sie hier. Unsere AGBs finden sie hier.
</a> </a>
</div> </div>
</form> </form>
</main> </main>
<footer th:replace="fragments/footer :: footer"></footer> <footer th:replace="fragments/footer :: footer"></footer>
</body> </body>
</html> </html>