mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-07-19 21:04:36 +02:00
parent
a8a67a9626
commit
ea24c27d6e
38
src/main/java/catering/users/ProfileForm.java
Normal file
38
src/main/java/catering/users/ProfileForm.java
Normal file
|
@ -0,0 +1,38 @@
|
|||
package catering.users;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import java.util.Optional;
|
||||
import org.springframework.validation.Errors;
|
||||
|
||||
public class ProfileForm {
|
||||
|
||||
private final @NotEmpty String username, address, fullName;
|
||||
private final Optional<String> password;
|
||||
|
||||
public ProfileForm(String username, Optional<String> password, String address, String fullName) {
|
||||
this.username = username;
|
||||
this.address = address;
|
||||
this.fullName = fullName;
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public Optional<String> getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public void validate(Errors errors) {
|
||||
|
||||
}
|
||||
}
|
|
@ -5,13 +5,13 @@ import org.springframework.validation.Errors;
|
|||
|
||||
public class RegistrationForm {
|
||||
|
||||
private final @NotEmpty String username, password, address;
|
||||
|
||||
public RegistrationForm(String username, String password, String address) {
|
||||
private final @NotEmpty String password, username, address, fullName;
|
||||
|
||||
public RegistrationForm(String username, String password, String address, String fullName) {
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.address = address;
|
||||
this.fullName = fullName;
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
|
@ -26,6 +26,10 @@ public class RegistrationForm {
|
|||
return address;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public void validate(Errors errors) {
|
||||
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ import org.jmolecules.ddd.types.Identifier;
|
|||
public class User extends AbstractAggregateRoot<UserIdentifier> {
|
||||
|
||||
private @EmbeddedId UserIdentifier id = new UserIdentifier();
|
||||
private String address;
|
||||
private String address, fullName;
|
||||
|
||||
@OneToOne
|
||||
private UserAccount userAccount;
|
||||
|
@ -26,8 +26,9 @@ public class User extends AbstractAggregateRoot<UserIdentifier> {
|
|||
@SuppressWarnings("unused")
|
||||
private User() {}
|
||||
|
||||
public User(UserAccount userAccount,String address){
|
||||
public User(UserAccount userAccount, String address, String fullName){
|
||||
this.address = address;
|
||||
this.fullName = fullName;
|
||||
this.userAccount = userAccount;
|
||||
};
|
||||
|
||||
|
@ -51,6 +52,15 @@ public class User extends AbstractAggregateRoot<UserIdentifier> {
|
|||
return true;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
};
|
||||
|
||||
public boolean setFullName(String name){
|
||||
fullName = name;
|
||||
return true;
|
||||
}
|
||||
|
||||
public UserAccount getUserAccount(){
|
||||
return this.userAccount;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public class UserController {
|
|||
if (result.hasErrors()){
|
||||
return "register";
|
||||
}
|
||||
userManagement.createCustomer(form.getUsername(),form.getAddress(),form.getPassword());
|
||||
userManagement.createCustomer(form.getUsername(),form.getAddress(),form.getPassword(),form.getFullName());
|
||||
return "redirect:/login";
|
||||
}
|
||||
|
||||
|
@ -61,25 +61,18 @@ public class UserController {
|
|||
|
||||
@PostMapping("/profile")
|
||||
@PreAuthorize("isAuthenticated()")
|
||||
public String editProfile(@LoggedIn UserAccount userAccount, @RequestParam String password, @RequestParam String address, @RequestParam String username) {
|
||||
public String editProfile(@LoggedIn UserAccount userAccount, @Valid ProfileForm form) {
|
||||
User user = userManagement.getUserByAccount(userAccount).get();
|
||||
|
||||
if (!username.isBlank()) {
|
||||
user.setUsername(username);
|
||||
user.setUsername(form.getUsername());
|
||||
user.setFullName(form.getFullName());
|
||||
user.setAddress(form.getAddress());
|
||||
if (!form.getPassword().get().isEmpty()) {
|
||||
userManagement.setPassword(form.getPassword().get(), user.getUserAccount());
|
||||
}
|
||||
if (!address.isBlank()) {
|
||||
user.setAddress(address);
|
||||
}
|
||||
if (!password.isBlank()) {
|
||||
userManagement.setPassword(password, user.getUserAccount());
|
||||
}
|
||||
|
||||
userManagement.save(user);
|
||||
|
||||
if (!username.isBlank()){
|
||||
return "redirect:/logout";
|
||||
}
|
||||
|
||||
// by default the user gets logged out by salespoint after changing the user name
|
||||
return "redirect:/profile";
|
||||
}
|
||||
|
||||
|
|
|
@ -23,12 +23,17 @@ public class UserManagement {
|
|||
this.userAccounts = userAccounts;
|
||||
}
|
||||
|
||||
public User createCustomer(String name, String address, String password) {
|
||||
return users.save(new User(userAccounts.create(name,UnencryptedPassword.of(password),Role.of("CUSTOMER")), address));
|
||||
public User createCustomer(
|
||||
String username,
|
||||
String address,
|
||||
String password,
|
||||
String fullName
|
||||
) {
|
||||
return users.save(new User(userAccounts.create(username,UnencryptedPassword.of(password),Role.of("CUSTOMER")),address,fullName));
|
||||
}
|
||||
|
||||
public User createAdmin(String name, String address, String password) {
|
||||
return users.save(new User(userAccounts.create(name,UnencryptedPassword.of(password),Role.of("ADMIN")), address));
|
||||
return users.save(new User(userAccounts.create(name,UnencryptedPassword.of(password),Role.of("ADMIN")), address, name));
|
||||
}
|
||||
|
||||
public User save(User user) {
|
||||
|
|
|
@ -20,6 +20,10 @@
|
|||
</div>
|
||||
|
||||
<h2>Nutzerinformationen</h2>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="fullName">Name</label>
|
||||
<input class="form-control" name="fullName" th:value="${user.fullName}" type="text">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="address">Adresse</label>
|
||||
<input class="form-control" name="address" th:value="${user.address}" type="text">
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
<label class="form-label" for="password">Passwort</label>
|
||||
<input class="form-control" name="password" type="password" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="fullName">Name</label>
|
||||
<input class="form-control" name="fullName" type="text" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="address">Adresse</label>
|
||||
<input class="form-control" name="address" type="text" required>
|
||||
|
|
Loading…
Reference in a new issue