From 0dbbb2956c67e4d22a9ee8614a29c3919177d7d5 Mon Sep 17 00:00:00 2001 From: sowgro Date: Tue, 7 Oct 2025 09:10:34 -0400 Subject: Add user settings --- .../controller/userinput/menus/SelectUser.java | 31 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'src/main/java/design/controller/userinput/menus/SelectUser.java') diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java index 82e2338..8dee860 100644 --- a/src/main/java/design/controller/userinput/menus/SelectUser.java +++ b/src/main/java/design/controller/userinput/menus/SelectUser.java @@ -7,8 +7,10 @@ import design.model.Golfer; import design.runtime.Session; import design.persistence.PersonalDatabase; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Scanner; public class SelectUser extends Menu { private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE; @@ -25,7 +27,8 @@ public class SelectUser extends Menu { @Override public List getMenuOptions() { - var l = new ArrayList(); + var opts = new ArrayList(); + for (Golfer i : personalDB.getGolfers()) { MenuOption menuOption = new MenuOption(i.getUsername(), () -> { // Sets user in Session too @@ -33,9 +36,29 @@ public class SelectUser extends Menu { System.out.printf("Loaded user: %s%n", i.getUsername()); doAfter.onCommand(); }); - l.add(menuOption); + opts.add(menuOption); } - l.add(new MenuOption("", () -> {})); - return l; + + opts.add(new MenuOption("", () -> { + Scanner sc = new Scanner(System.in); + + System.out.print("Enter username: "); + var username = sc.nextLine(); + + System.out.print("Enter full name: "); + var fullName = sc.nextLine(); + + System.out.print("Enter password: "); + var password = sc.nextLine(); + + try { + personalDB.addGolfer(new Golfer(fullName, username, password)); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + this.present(); + })); + + return opts; } } -- cgit v1.2.3 From 701aba30fe05f65ab0e027f9d9aac0928d814560 Mon Sep 17 00:00:00 2001 From: sowgro Date: Tue, 7 Oct 2025 09:54:16 -0400 Subject: Prompt for password and cleanup --- .../controller/userinput/menus/SelectUser.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/main/java/design/controller/userinput/menus/SelectUser.java') 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("", () -> { - 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)); -- cgit v1.2.3