diff --git a/src/main/java/model/User.java b/src/main/java/model/User.java index 28590b2..a5d7ed3 100644 --- a/src/main/java/model/User.java +++ b/src/main/java/model/User.java @@ -3,41 +3,59 @@ import password.PasswordHash; public class User { - private final String userName; - private final String phoneNumber; + private String userName; + private String phoneNumber; private final String eMail; - private final PasswordHash password; + private String password; - public User(String userName, String phoneNumber, PasswordHash password, String eMail) { + public User(String userName, String phoneNumber, String password, String eMail) { this.userName = userName; this.phoneNumber = phoneNumber; this.eMail = eMail; this.password = password; - if ( userName == null || userName.isBlank() ) { + if (userName == null || userName.isBlank()) { throw new IllegalArgumentException("Username has to be filled in"); } - if ( eMail == null || eMail.isBlank() ) { + if (eMail == null || eMail.isBlank()) { throw new IllegalArgumentException("E-mail has to be filled in"); } - if ( phoneNumber == null || phoneNumber.isBlank() ) { + if (phoneNumber == null || phoneNumber.isBlank()) { throw new IllegalArgumentException("Phonenumber has to be filled in"); } - if ( phoneNumber.length() != 8 ) { + if (phoneNumber.length() != 8) { throw new IllegalArgumentException("Fill in a phonenumber with 8 digits"); } } - public String getUsername() { return userName; } + public String getUsername() { + return userName; + } - public String getPhoneNumber() { return phoneNumber; } + public String getPhoneNumber() { + return phoneNumber; + } - public String getEMail() { return eMail; } + public String getEMail() { + return eMail; + } - public PasswordHash getPasswordHash() { return password; } + public String getPassword() { + return password; + } + public void setPassword(String password) { + this.password = password; + } -} + public void setUsername(String userName) { + this.userName = userName; + } + + public void setPhonenumber (String phoneNumber) { + this.phoneNumber = phoneNumber; + } +} \ No newline at end of file diff --git a/src/main/java/password/PasswordHash.java b/src/main/java/password/PasswordHash.java index cda7ced..4faea00 100644 --- a/src/main/java/password/PasswordHash.java +++ b/src/main/java/password/PasswordHash.java @@ -19,7 +19,7 @@ public static String hash(String password) { } } - public static boolean mathches(String password, String hashedPassword) { + public static boolean matches(String password, String hashedPassword) { String newHash = hash(password); return newHash.equals(hashedPassword); } diff --git a/src/main/java/register/UserRegister.java b/src/main/java/register/UserRegister.java index 398cee3..92ce86a 100644 --- a/src/main/java/register/UserRegister.java +++ b/src/main/java/register/UserRegister.java @@ -1,6 +1,8 @@ package register; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import model.User; @@ -17,4 +19,16 @@ public void addUser(User user) { users.put(user.getUsername(), user); } } + + public void removeUser(User user) { + if (users.containsValue(user)) { + users.remove(user); + } + } + + public List getAllUsers() { + return new ArrayList<>(users.values()); + } + + public int numberOfAuthors() { return users.size(); } } diff --git a/src/main/java/service/AuthService.java b/src/main/java/service/AuthService.java index c60b35e..3e0f07b 100644 --- a/src/main/java/service/AuthService.java +++ b/src/main/java/service/AuthService.java @@ -1,4 +1,16 @@ package service; +import model.User; +import password.PasswordHash; + public class AuthService { + + public User register(String userName, String eMail, String password, String phoneNumber) { + String hashedPassword = PasswordHash.hash(password); + return new User(userName, phoneNumber, hashedPassword, eMail); + } + + public boolean login(User user, String password) { + return PasswordHash.matches(password, user.getPassword()); + } } diff --git a/src/main/java/service/UserService.java b/src/main/java/service/UserService.java index 467d401..8590544 100644 --- a/src/main/java/service/UserService.java +++ b/src/main/java/service/UserService.java @@ -1,4 +1,23 @@ package service; +import model.User; +import register.UserRegister; +import password.PasswordHash; +import service.AuthService; + + public class UserService { + private AuthService authService; + + public UserService() { + this.authService = authService; + } + + public boolean changeUsername(User user, String password, String newUsername) { + if (authService.login(user, password)) { + user.setUsername(newUsername); + return true; + } + return false; + } }