From 7a90e31c06e2c64167d56ede44abe2332ffd9df0 Mon Sep 17 00:00:00 2001 From: IanBussan <91163179+IanBussan@users.noreply.github.com> Date: Wed, 1 May 2024 22:11:44 +0000 Subject: [PATCH] Issue#9 removed nested if else statement replaced with functions and SQL method for getting user role --- src/DB.java | 19 ++++++++++++ src/Login.java | 84 ++++++++++++++++++++++++++++---------------------- 2 files changed, 66 insertions(+), 37 deletions(-) diff --git a/src/DB.java b/src/DB.java index a0173b9..a913d9a 100644 --- a/src/DB.java +++ b/src/DB.java @@ -351,6 +351,25 @@ public static void updateProduct(String id,int quan) } } + + public static String getUserRole(String username, String password) { + String sql = "SELECT Role FROM users WHERE Username = '"+username+" AND Password = '"+password+"'"; + try (Connection conn = DBConnection(); + PreparedStatement stmt = conn.prepareStatement(sql)) { + stmt.setString(1, username); + stmt.setString(2, password); + try (ResultSet rs = stmt.executeQuery()) { + if (rs.next()) { + return rs.getString("Role"); + } else { + return null; + } + } + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + } public static void main(String args[]) { diff --git a/src/Login.java b/src/Login.java index 8ac4ee9..c5858bf 100644 --- a/src/Login.java +++ b/src/Login.java @@ -107,44 +107,12 @@ public void actionPerformed(ActionEvent e) { }); btnLogin = new JButton("Login"); + btnLogin.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + performLogin(); + } + }); - btnLogin.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - password=passwordField.getText().toString().toLowerCase(); - username=usernameField.getText().toString().toLowerCase(); - passwordField.setText(""); - usernameField.setText(""); - if(password.equals("")||username.equals("")) - error.setText(errorText); - else - { - error.setText(""); - if(username.equals("admin")) - { - if(DB.varifyLogin(username,password)) - { - error.setText(""); - AdminPanel p=new AdminPanel(); - p.setVisible(true); - } - else - error.setText(errorText); - } - else - { - if(DB.varifyLogin(username,password)) - { - error.setText(""); - generateInvoice g=new generateInvoice(); - g.setVisible(true); - } - else - error.setText(errorText); - } - - } - } - }); btnLogin.setBounds(282, 227, 89, 23); contentPane.add(btnLogin); @@ -165,6 +133,48 @@ public void actionPerformed(ActionEvent arg0) { } +private void performLogin() { + String username = usernameField.getText().trim(); + String password = new String(passwordField.getPassword()); + + if (username.isEmpty() || password.isEmpty()) { + error.setText(errorText); + } else { + String userRole = DB.getUserRole(username, password); + if (userRole != null) { + + error.setText("Login successful!"); + + switch (userRole) { + case "admin": + openAdminPanel(); + break; + case "user": + generateInvoice(); + break; + default: + error.setText("Unknown user role"); + break; + } + } else { + error.setText(errorText); + } + } + } + + private void openAdminPanel() { + AdminPanel adminPanel = new AdminPanel(); + adminPanel.setVisible(true); + dispose(); + } + + private void generateInvoice() { + generateInvoice g = new generateInvoice(); + g.setVisible(true); + dispose(); + } + + public static String getMac() { InetAddress ip;