From cb050c32085df9501e601c435b9eeb75494591c0 Mon Sep 17 00:00:00 2001 From: Me Car Date: Thu, 14 Jan 2016 09:53:23 +0900 Subject: [PATCH 1/3] Send password on reconnect. --- Mage.Client/src/main/java/mage/client/MageFrame.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 4494e6951da..32395ed7415 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -746,6 +746,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private boolean performConnect() { String userName = prefs.get("userName", ""); + String password = prefs.get("password", ""); String server = prefs.get("serverAddress", ""); int port = Integer.parseInt(prefs.get("serverPort", "")); String proxyServer = prefs.get("proxyAddress", ""); @@ -757,6 +758,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { setCursor(new Cursor(Cursor.WAIT_CURSOR)); Connection connection = new Connection(); connection.setUsername(userName); + connection.setPassword(password); connection.setHost(server); connection.setPort(port); connection.setProxyType(proxyType); From f5765383c7c08db9da3f0b5c80af51cf5e70fd69 Mon Sep 17 00:00:00 2001 From: Me Car Date: Thu, 14 Jan 2016 10:01:30 +0900 Subject: [PATCH 2/3] Use server and port specified in ConnectDialog rather than in the preference. --- .../main/java/mage/client/dialog/ConnectDialog.java | 12 ++++++++++-- .../java/mage/client/dialog/RegisterUserDialog.java | 8 +++++--- .../java/mage/client/dialog/ResetPasswordDialog.java | 8 +++++--- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java index 50ea1cc30fb..6a07009d62d 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java @@ -97,10 +97,10 @@ public class ConnectDialog extends MageDialog { this.txtUserName.addActionListener(connectAction); this.txtPassword.addActionListener(connectAction); - registerUserDialog = new RegisterUserDialog(); + registerUserDialog = new RegisterUserDialog(this); MageFrame.getDesktop().add(registerUserDialog, JLayeredPane.POPUP_LAYER); - resetPasswordDialog = new ResetPasswordDialog(); + resetPasswordDialog = new ResetPasswordDialog(this); MageFrame.getDesktop().add(resetPasswordDialog, JLayeredPane.POPUP_LAYER); } @@ -587,6 +587,14 @@ public class ConnectDialog extends MageDialog { resetPasswordDialog.showDialog(); }//GEN-LAST:event_btnForgotPasswordActionPerformed + public String getServer() { + return this.txtServer.getText(); + } + + public String getPort() { + return this.txtPort.getText(); + } + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancel; private javax.swing.JButton btnConnect; diff --git a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java index c7c132a14c6..59886d5721d 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java @@ -15,6 +15,7 @@ import org.apache.log4j.Logger; public class RegisterUserDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ConnectDialog.class); + private ConnectDialog connectDialog; private Connection connection; private ConnectTask task; private Session session; @@ -22,13 +23,14 @@ public class RegisterUserDialog extends MageDialog { /** * Creates new form RegisterUserDialog */ - public RegisterUserDialog() { + public RegisterUserDialog(ConnectDialog connectDialog) { initComponents(); + this.connectDialog = connectDialog; } public void showDialog() { - this.txtServer.setText(MageFrame.getPreferences().get("serverAddress", Config.serverName)); - this.txtPort.setText(MageFrame.getPreferences().get("serverPort", Integer.toString(Config.port))); + this.txtServer.setText(this.connectDialog.getServer()); + this.txtPort.setText(this.connectDialog.getPort()); this.lblStatus.setText(""); this.setModal(true); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java index 1328ec25045..edab801a7df 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java @@ -15,6 +15,7 @@ import org.apache.log4j.Logger; public class ResetPasswordDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ResetPasswordDialog.class); + private ConnectDialog connectDialog; private Connection connection; private Session session; private GetAuthTokenTask getAuthTokenTask; @@ -23,13 +24,14 @@ public class ResetPasswordDialog extends MageDialog { /** * Creates new form ResetPasswordDialog */ - public ResetPasswordDialog() { + public ResetPasswordDialog(ConnectDialog connectDialog) { initComponents(); + this.connectDialog = connectDialog; } public void showDialog() { - this.txtServer.setText(MageFrame.getPreferences().get("serverAddress", Config.serverName)); - this.txtPort.setText(MageFrame.getPreferences().get("serverPort", Integer.toString(Config.port))); + this.txtServer.setText(this.connectDialog.getServer()); + this.txtPort.setText(this.connectDialog.getPort()); this.lblStatus.setText(""); this.setModal(true); From b114c17135fdfb6de8b1385e38f11257fbbe6ed8 Mon Sep 17 00:00:00 2001 From: Me Car Date: Thu, 14 Jan 2016 18:00:04 +0900 Subject: [PATCH 3/3] Store usrName and password per server. Update input boxes with corresponding values when server is changed in ConnectDialog. Save prefs on successful requests in RegisterUserDialog and ResetPasswordDialog. --- .../src/main/java/mage/client/MageFrame.java | 7 +++-- .../mage/client/dialog/ConnectDialog.java | 26 ++++++++++++++----- .../client/dialog/RegisterUserDialog.java | 11 ++++++++ .../client/dialog/ResetPasswordDialog.java | 14 +++++++++- 4 files changed, 48 insertions(+), 10 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 32395ed7415..45a1798de32 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -745,10 +745,13 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } private boolean performConnect() { - String userName = prefs.get("userName", ""); - String password = prefs.get("password", ""); + // TODO: Create MagePreference class to consolidate duplicated preference code in + // MageFrame, ConnectDialog and PreferencesDialog. String server = prefs.get("serverAddress", ""); int port = Integer.parseInt(prefs.get("serverPort", "")); + // For userName and password we save preference per server. + String userName = prefs.get(server + "/userName", ""); + String password = prefs.get(server + "/password", ""); String proxyServer = prefs.get("proxyAddress", ""); int proxyPort = Integer.parseInt(prefs.get("proxyPort", "0")); ProxyType proxyType = ProxyType.valueByText(prefs.get("proxyType", "None")); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java index 6a07009d62d..95ed3df99da 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java @@ -105,10 +105,14 @@ public class ConnectDialog extends MageDialog { } public void showDialog() { - this.txtServer.setText(MageFrame.getPreferences().get("serverAddress", Config.serverName)); + // TODO: Create MagePreference class to consolidate duplicated preference code in + // MageFrame, ConnectDialog and PreferencesDialog. + String serverAddress = MageFrame.getPreferences().get("serverAddress", Config.serverName); + this.txtServer.setText(serverAddress); this.txtPort.setText(MageFrame.getPreferences().get("serverPort", Integer.toString(Config.port))); - this.txtUserName.setText(MageFrame.getPreferences().get("userName", "")); - this.txtPassword.setText(MageFrame.getPreferences().get("password", "")); + // For userName and password we save preference per server. + this.txtUserName.setText(MageFrame.getPreferences().get(serverAddress + "/userName", "")); + this.txtPassword.setText(MageFrame.getPreferences().get(serverAddress + "/password", "")); this.chkAutoConnect.setSelected(Boolean.parseBoolean(MageFrame.getPreferences().get(KEY_CONNECT_AUTO_CONNECT, "false"))); this.chkForceUpdateDB.setSelected(false); // has always to be set manually to force comparison @@ -127,10 +131,14 @@ public class ConnectDialog extends MageDialog { } private void saveSettings() { - MageFrame.getPreferences().put("serverAddress", txtServer.getText().trim()); + // TODO: Create MagePreference class to consolidate duplicated preference code in + // MageFrame, ConnectDialog and PreferencesDialog. + String serverAddress = txtServer.getText().trim(); + MageFrame.getPreferences().put("serverAddress", serverAddress); MageFrame.getPreferences().put("serverPort", txtPort.getText().trim()); - MageFrame.getPreferences().put("userName", txtUserName.getText().trim()); - MageFrame.getPreferences().put("password", txtPassword.getText().trim()); + // For userName and password we save preference per server. + MageFrame.getPreferences().put(serverAddress + "/userName", txtUserName.getText().trim()); + MageFrame.getPreferences().put(serverAddress + "/password", txtPassword.getText().trim()); MageFrame.getPreferences().put(KEY_CONNECT_AUTO_CONNECT, Boolean.toString(chkAutoConnect.isSelected())); } @@ -544,8 +552,12 @@ public class ConnectDialog extends MageDialog { if (selectedServer != null) { String[] params = selectedServer.split(":"); if (params.length == 3) { - this.txtServer.setText(params[1]); + String serverAddress = params[1]; + this.txtServer.setText(serverAddress); this.txtPort.setText(params[2]); + // Update userName and password according to the chosen server. + this.txtUserName.setText(MageFrame.getPreferences().get(serverAddress + "/userName", "")); + this.txtPassword.setText(MageFrame.getPreferences().get(serverAddress + "/password", "")); } else { JOptionPane.showMessageDialog(null, "Wrong server data format."); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java index 59886d5721d..bbeaaa86b0a 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java @@ -4,6 +4,7 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.prefs.Preferences; import javax.swing.SwingWorker; import mage.client.MageFrame; import mage.client.util.Config; @@ -238,6 +239,16 @@ public class RegisterUserDialog extends MageDialog { if (result) { String message = "Registration succeeded"; lblStatus.setText(message); + + // Save settings. + Preferences prefs = MageFrame.getPreferences(); + prefs.put("serverAddress", connection.getHost()); + prefs.put("serverPort", Integer.toString(connection.getPort())); + // For userName and password we save preference per server. + prefs.put(connection.getHost() + "/userName", connection.getUsername()); + prefs.put(connection.getHost() + "/password", connection.getPassword()); + prefs.put(connection.getHost() + "/email", connection.getEmail()); + MageFrame.getInstance().showMessage(message); hideDialog(); } else { diff --git a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java index edab801a7df..c268cb3047d 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java @@ -4,6 +4,7 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.prefs.Preferences; import javax.swing.SwingWorker; import mage.client.MageFrame; import mage.client.util.Config; @@ -30,8 +31,10 @@ public class ResetPasswordDialog extends MageDialog { } public void showDialog() { - this.txtServer.setText(this.connectDialog.getServer()); + String serverAddress = this.connectDialog.getServer(); + this.txtServer.setText(serverAddress); this.txtPort.setText(this.connectDialog.getPort()); + this.txtEmail.setText(MageFrame.getPreferences().get(serverAddress + "/email", "")); this.lblStatus.setText(""); this.setModal(true); @@ -336,6 +339,10 @@ public class ResetPasswordDialog extends MageDialog { try { get(CONNECTION_TIMEOUT_MS, TimeUnit.MILLISECONDS); if (result) { + // Save settings. + Preferences prefs = MageFrame.getPreferences(); + prefs.put(connection.getHost() + "/email", connection.getEmail()); + String message = "Auth token is emailed. Please check your inbox."; lblStatus.setText(message); MageFrame.getInstance().showMessage(message); @@ -378,6 +385,11 @@ public class ResetPasswordDialog extends MageDialog { if (result) { String message = "Password is reset successfully."; lblStatus.setText(message); + + // Save settings. + Preferences prefs = MageFrame.getPreferences(); + prefs.put(connection.getHost() + "/password", connection.getPassword()); + MageFrame.getInstance().showMessage(message); hideDialog(); } else {