From 6d3324378f99626fa9d8730fe9d051fd4d096b7f Mon Sep 17 00:00:00 2001 From: spjspj Date: Sat, 14 Jan 2017 15:29:15 +1100 Subject: [PATCH] spjspj - Add Set Active to server console --- .../src/mage/interfaces/MageServer.java | 2 ++ Mage.Common/src/mage/remote/SessionImpl.java | 18 ++++++++++++++++++ .../src/mage/remote/interfaces/Connect.java | 2 ++ .../main/java/mage/server/MageServerImpl.java | 14 ++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/Mage.Common/src/mage/interfaces/MageServer.java b/Mage.Common/src/mage/interfaces/MageServer.java index d9702a12548..817ccf84a98 100644 --- a/Mage.Common/src/mage/interfaces/MageServer.java +++ b/Mage.Common/src/mage/interfaces/MageServer.java @@ -210,6 +210,8 @@ public interface MageServer { void lockUser(String sessionId, String userName, long durationMinutes) throws MageException; + void setActivation(String sessionId, String userName, boolean active) throws MageException; + void toggleActivation(String sessionId, String userName) throws MageException; void removeTable(String sessionId, UUID tableId) throws MageException; diff --git a/Mage.Common/src/mage/remote/SessionImpl.java b/Mage.Common/src/mage/remote/SessionImpl.java index 9acb85673df..27739f9ec26 100644 --- a/Mage.Common/src/mage/remote/SessionImpl.java +++ b/Mage.Common/src/mage/remote/SessionImpl.java @@ -1466,6 +1466,24 @@ public class SessionImpl implements Session { } return false; } + + @Override + public boolean setActivation(String userName, boolean active) { + try { + if (JOptionPane.showConfirmDialog(null, "Are you sure you mean to set active to " + active + " for user: " + userName + "?", "WARNING", + JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + if (isConnected()) { + server.setActivation(sessionId, userName, active); + return true; + } + } + } catch (MageException ex) { + handleMageException(ex); + } catch (Throwable t) { + handleThrowable(t); + } + return false; + } @Override public boolean toggleActivation(String userName) { diff --git a/Mage.Common/src/mage/remote/interfaces/Connect.java b/Mage.Common/src/mage/remote/interfaces/Connect.java index 5f8a4a0667c..5cb8750e596 100644 --- a/Mage.Common/src/mage/remote/interfaces/Connect.java +++ b/Mage.Common/src/mage/remote/interfaces/Connect.java @@ -58,6 +58,8 @@ public interface Connect { boolean muteUserChat(String userName, long durationMinute); + boolean setActivation(String userName, boolean active); + boolean toggleActivation(String userName); boolean lockUser(String userName, long durationMinute); diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java index 5e14476ce60..98bcd807468 100644 --- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java +++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java @@ -1008,6 +1008,20 @@ public class MageServerImpl implements MageServer { }); } + @Override + public void setActivation(final String sessionId, final String userName, boolean active) throws MageException { + execute("setActivation", sessionId, () -> { + User user = UserManager.getInstance().getUserByName(userName); + if (user != null) { + user.setActive(active); + if (!user.isActive() && user.isConnected()) { + SessionManager.getInstance().disconnectUser(sessionId, user.getSessionId()); + } + } + + }); + } + @Override public void toggleActivation(final String sessionId, final String userName) throws MageException { execute("toggleActivation", sessionId, () -> {