diff --git a/src/main/java/com/Samsung/TaskTraker_Server/Models/User.java b/src/main/java/com/Samsung/TaskTraker_Server/Models/User.java index 6a4bee6..5030938 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/Models/User.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/Models/User.java @@ -1,10 +1,13 @@ package com.Samsung.TaskTraker_Server.Models; +import com.Samsung.TaskTraker_Server.Repository.DataBase; + +import java.sql.SQLException; import java.util.Objects; public class User { private final int ID; private final String login; - private final String password; + private String password; public User(int ID, String login, String password) { this.ID = ID; @@ -24,6 +27,11 @@ public class User { return password; } + public void setPassword(String newPassword) throws SQLException { + DataBase.getInstance().UpdatePassword(newPassword, ID); + password = newPassword; + } + @Override public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; diff --git a/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java b/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java index 558a85c..0ed3447 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java @@ -91,6 +91,13 @@ public class DataBase { remove.executeUpdate(); } + public void UpdatePassword(String password, int userID) throws SQLException { + PreparedStatement update = connection.prepareStatement("UPDATE users SET password = ? WHERE id = ?"); + update.setString(1, password); + update.setInt(2, userID); + update.executeUpdate(); + } + public List getTaskList(User user) throws SQLException { PreparedStatement findTasks = connection.prepareStatement("SELECT * FROM tasks WHERE UserOwner = ?"); findTasks.setInt(1, user.getID()); diff --git a/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java b/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java index da6a6c2..7da76f6 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java @@ -86,6 +86,26 @@ public class TaskTrakerServerApplication { } } + @PostMapping("/user/ChangePassword") + public String editUserPassword(@RequestParam(name = "oldPassword", defaultValue = "") String oldPassword, + @RequestParam(name = "login", defaultValue = "") String login, + @RequestParam(name = "newPassword", defaultValue = "") String newPassword) { + if(oldPassword.isEmpty() || login.isEmpty() || newPassword.isEmpty()) + return "{\n\t\"status\":\"error\"\n}"; + + try { + User user = UserRepository.getRepository().getUserByLogin(login); + if(user == null || !user.getPassword().equals(oldPassword)) + return "{\n\t\"status\":\"error\"\n}"; + + user.setPassword(newPassword); + return "{\n\t\"status\":\"ok\"\n}"; + } catch (SQLException e) { + System.out.println(e.getMessage()); + return "{\n\t\"status\":\"error\"\n}"; + } + } + @GetMapping("/user/task") public Task getTask(@RequestParam(value = "login", defaultValue = "null") String login, @RequestParam(value = "password", defaultValue = "null") String pass,