From 002c7f1868812bd48e849829c3a69743e7016de6 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 25 Nov 2013 22:51:11 +0200 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BA=D0=BE=D0=BD=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B2=D0=BE=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=9B=D0=A04?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tse/lr4/LoginPanel.java | 49 ++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/tse/lr4/LoginPanel.java b/src/tse/lr4/LoginPanel.java index 31186e9..81fb9cc 100644 --- a/src/tse/lr4/LoginPanel.java +++ b/src/tse/lr4/LoginPanel.java @@ -54,6 +54,14 @@ public class LoginPanel extends JPanel { loginButton = new JButton(); loginButton.setText("Войти"); + loginButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent evt) { + if (state == STATE_LOGIN) { + checkAuth(); + } + } + }); add(loginButton, new AbsoluteConstraints(112, 129, 125, -1)); signupButton = new JButton(); @@ -108,10 +116,15 @@ public class LoginPanel extends JPanel { } private boolean checkSignUpCredentials() { - if (loginTextField.getText().isEmpty()) { + String login = loginTextField.getText(); + if (login.isEmpty()) { JOptionPane.showMessageDialog(this, "Не введён логин", "Ошибка", JOptionPane.ERROR_MESSAGE); return false; } + if (AccountManager.getInstance().isAccountExists(login)) { + JOptionPane.showMessageDialog(this, "Пользователь с таким именем уже существует", "Ошибка", JOptionPane.ERROR_MESSAGE); + return false; + } String pass1 = String.valueOf( passwordTextField.getPassword() ); String pass2 = String.valueOf( confirmPasswordTextField.getPassword() ); if (!pass1.equals(pass2)) { @@ -126,7 +139,41 @@ public class LoginPanel extends JPanel { JOptionPane.showMessageDialog(this, "Слишком короткий пароль", "Ошибка", JOptionPane.ERROR_MESSAGE); return false; } + + // Всё отлично, регистрируем. + registerNewAccount(login, pass1); JOptionPane.showMessageDialog(this, "Регистрация завершена"); return true; } + + private void registerNewAccount(String user, String pass) { + String md5hash = Utils.md5(pass); + AccountManager.getInstance().createNewAccount(user, md5hash); + } + + private void checkAuth() { + String login = loginTextField.getText(); + if (login.isEmpty()) { + JOptionPane.showMessageDialog(this, "Не введён логин", "Ошибка", JOptionPane.ERROR_MESSAGE); + return; + } + String pass = String.valueOf( passwordTextField.getPassword() ); + if (pass.isEmpty()) { + JOptionPane.showMessageDialog(this, "Не введён пароль", "Ошибка", JOptionPane.ERROR_MESSAGE); + return; + } + + String md5hash = Utils.md5(pass); + switch(AccountManager.getInstance().checkAuth(login, md5hash)) { + case AccountManager.STATE_ACCOUNT_NOT_EXISTS: + JOptionPane.showMessageDialog(this, "Пользователя с таким именем не существует", "Ошибка", JOptionPane.ERROR_MESSAGE); + break; + case AccountManager.STATE_PASSWORD_INCORRECT: + JOptionPane.showMessageDialog(this, "Неправильный пароль", "Ошибка", JOptionPane.ERROR_MESSAGE); + break; + case AccountManager.STATE_AUTH_SUCCESSFULL: + JOptionPane.showMessageDialog(this, "Авторизация успешна!"); + break; + } + } }