diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-10-07 09:54:16 -0400 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-10-07 09:54:16 -0400 |
| commit | 701aba30fe05f65ab0e027f9d9aac0928d814560 (patch) | |
| tree | e3b9817558c0cd57f1f3a47de11afee00a919d33 /src/main/java/design | |
| parent | 955ba36fa0648b9239d9eae7c3f122c549b272c6 (diff) | |
| download | designproject-design-6-701aba30fe05f65ab0e027f9d9aac0928d814560.tar.gz designproject-design-6-701aba30fe05f65ab0e027f9d9aac0928d814560.tar.bz2 designproject-design-6-701aba30fe05f65ab0e027f9d9aac0928d814560.zip | |
Prompt for password and cleanup
Diffstat (limited to 'src/main/java/design')
4 files changed, 19 insertions, 12 deletions
diff --git a/src/main/java/design/controller/userinput/Action.java b/src/main/java/design/controller/userinput/Action.java index bb16585..2c95b2b 100644 --- a/src/main/java/design/controller/userinput/Action.java +++ b/src/main/java/design/controller/userinput/Action.java @@ -2,5 +2,5 @@ package design.controller.userinput; @FunctionalInterface public interface Action { - void onCommand(); + void onAction(); } diff --git a/src/main/java/design/controller/userinput/Menu.java b/src/main/java/design/controller/userinput/Menu.java index c8090f6..0b2fb26 100644 --- a/src/main/java/design/controller/userinput/Menu.java +++ b/src/main/java/design/controller/userinput/Menu.java @@ -22,7 +22,7 @@ public abstract class Menu { try { int i = Integer.parseInt(line); - menuOptions.get(i).onCommand(); + menuOptions.get(i).onAction(); } catch (ArrayIndexOutOfBoundsException ex) { System.err.printf("Invalid option \"%s\"\n", line); present(); diff --git a/src/main/java/design/controller/userinput/MenuOption.java b/src/main/java/design/controller/userinput/MenuOption.java index 5ae9521..f5707a9 100644 --- a/src/main/java/design/controller/userinput/MenuOption.java +++ b/src/main/java/design/controller/userinput/MenuOption.java @@ -13,7 +13,7 @@ public class MenuOption { return name; } - public void onCommand() { - action.onCommand(); + public void onAction() { + action.onAction(); } } diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java index 8dee860..ffae559 100644 --- a/src/main/java/design/controller/userinput/menus/SelectUser.java +++ b/src/main/java/design/controller/userinput/menus/SelectUser.java @@ -15,6 +15,7 @@ import java.util.Scanner; public class SelectUser extends Menu { private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE; private final Action doAfter; + private final Scanner scanner = new Scanner(System.in); public SelectUser(Action doAfter) { this.doAfter = doAfter; @@ -31,25 +32,31 @@ public class SelectUser extends Menu { for (Golfer i : personalDB.getGolfers()) { MenuOption menuOption = new MenuOption(i.getUsername(), () -> { - // Sets user in Session too - Session.setCurrentGolfer(i); - System.out.printf("Loaded user: %s%n", i.getUsername()); - doAfter.onCommand(); + System.out.print("Enter password: "); + var password = scanner.nextLine(); + if (i.checkPassword(password)) { + // Sets user in Session too + Session.setCurrentGolfer(i); + System.out.printf("Loaded user: %s%n", i.getUsername()); + doAfter.onAction(); + } else { + System.out.println("Incorrect password. "); + this.present(); + } }); opts.add(menuOption); } opts.add(new MenuOption("<create>", () -> { - Scanner sc = new Scanner(System.in); System.out.print("Enter username: "); - var username = sc.nextLine(); + var username = scanner.nextLine(); System.out.print("Enter full name: "); - var fullName = sc.nextLine(); + var fullName = scanner.nextLine(); System.out.print("Enter password: "); - var password = sc.nextLine(); + var password = scanner.nextLine(); try { personalDB.addGolfer(new Golfer(fullName, username, password)); |
