diff --git a/ProjetJava/src/main/java/views/PrimaryWindow.java b/ProjetJava/src/main/java/views/PrimaryWindow.java index 2b2c3edc9bbfc656e806c7146b89c90a5c9acf5f..702b6d4e857180d8944ccdaa76b94a0c6c1454a1 100644 --- a/ProjetJava/src/main/java/views/PrimaryWindow.java +++ b/ProjetJava/src/main/java/views/PrimaryWindow.java @@ -18,6 +18,7 @@ import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import services.GameLevel; import utils.Level; +import utils.PasswordHasher; /** * @@ -55,18 +56,17 @@ public class PrimaryWindow extends JFrame { ButtonGroup levelGroup = new ButtonGroup(); JRadioButtonMenuItem level1 = new JRadioButtonMenuItem("Niveau 1", true); JRadioButtonMenuItem level2 = new JRadioButtonMenuItem("Niveau 2"); - + // Administration JMenu admin = new JMenu("Administration"); JMenuItem authPart = new JMenuItem("S'authentifier"); - - + // Insertion menu.add(activities); activities.add(dessin); activities.add(calcul); activities.add(question); - + menu.add(new JSeparator()); menu.add(level); @@ -74,31 +74,36 @@ public class PrimaryWindow extends JFrame { level.add(level2); levelGroup.add(level1); levelGroup.add(level2); - + menu.add(new JSeparator()); - + menu.add(admin); admin.add(authPart); authPart.addActionListener(e -> { - String test = JOptionPane.showInputDialog(this, "Message mdp"); + String pwdInput = JOptionPane.showInputDialog(this,"Veuillez entrer le mot de passe :"); - if (test != null) { + if (pwdInput != null) { try { Properties props = new Properties(); props.load(DbConnection.class.getClassLoader().getResourceAsStream("database_config.properties")); - String testMdp = props.getProperty("password"); + String token = props.getProperty("token"); + + PasswordHasher pwdHasher = new PasswordHasher(); - if (test.equals(testMdp)) { + boolean authenticated = pwdHasher.authenticate(pwdInput.toCharArray(), token); + if (authenticated) { // Vérification si l'onglet est déjà ouvert if (tabbedPane.indexOfTab("Administration") == -1) { - // Création du panel Administration [PROVISOIRE TANT QUE LA PAGE ADMIN N'EXISTE PAS ENCORE !] + // Création du panel Administration AdminPanel panelAdmin = new AdminPanel(); - + // Ajout et focus sur l'onglet Administration tabbedPane.addTab("Administration", panelAdmin); - tabbedPane.setSelectedIndex(tabbedPane.getTabCount() - 1); + tabbedPane.setSelectedIndex( + tabbedPane.getTabCount() - 1 + ); } } else { // Si le mot de passe n'est pas le bon @@ -106,11 +111,10 @@ public class PrimaryWindow extends JFrame { } } catch (Exception ex) { - // Si je fichier properties n'est pas trouvé + // Si le fichier properties n'est pas trouvé JOptionPane.showMessageDialog(this, "Erreur properties.", "Erreur properties", JOptionPane.ERROR_MESSAGE); } } - }); menuBar.add(menu); @@ -134,18 +138,17 @@ public class PrimaryWindow extends JFrame { tabbedPane.addTab("Calcul", p); tabbedPane.addTab("Question", panelQuestion); - // Gestion du focus des champs de texte tabbedPane.addChangeListener(e -> { - if(tabbedPane.getSelectedIndex() == 1){ + if (tabbedPane.getSelectedIndex() == 1) { p.getChampCalcul().requestFocus(); } - - if(tabbedPane.getSelectedIndex() == 2){ + + if (tabbedPane.getSelectedIndex() == 2) { panelQuestion.getChampQuestion().requestFocus(); } }); - + // Admin /* * Onglet Administration (quatrième onglet) @@ -210,12 +213,12 @@ public class PrimaryWindow extends JFrame { revalidate(); repaint(); }); - + // Action du menu item Niveau 1 level1.addActionListener(e -> { gameLevel.setLevel(Level.EASY); }); - + // Action du menu item Niveau 2 level2.addActionListener(e -> { gameLevel.setLevel(Level.HARD);