Massive update enabling view-only users
This commit is contained in:
@ -11,9 +11,9 @@ import org.java_websocket.handshake.ClientHandshake;
|
||||
import org.java_websocket.server.WebSocketServer;
|
||||
|
||||
import es.mesacarlos.webconsole.WebConsole;
|
||||
import es.mesacarlos.webconsole.auth.LoginManager;
|
||||
import es.mesacarlos.webconsole.util.DateTimeUtils;
|
||||
import es.mesacarlos.webconsole.util.Internationalization;
|
||||
import es.mesacarlos.webconsole.util.LoginManager;
|
||||
import es.mesacarlos.webconsole.websocket.command.WSCommandFactory;
|
||||
import es.mesacarlos.webconsole.websocket.command.WSCommand;
|
||||
import es.mesacarlos.webconsole.websocket.response.ConsoleOutput;
|
||||
|
@ -6,6 +6,9 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import es.mesacarlos.webconsole.auth.LoginManager;
|
||||
import es.mesacarlos.webconsole.auth.User;
|
||||
import es.mesacarlos.webconsole.auth.UserType;
|
||||
import es.mesacarlos.webconsole.util.Internationalization;
|
||||
import es.mesacarlos.webconsole.websocket.WSServer;
|
||||
|
||||
@ -13,7 +16,13 @@ public class ExecCommand implements WSCommand {
|
||||
|
||||
@Override
|
||||
public void execute(WSServer wsServer, WebSocket conn, String command) {
|
||||
|
||||
User u = LoginManager.getInstance().getUser(conn.getRemoteSocketAddress());
|
||||
if(u == null || u.getUserType() != UserType.ADMIN) {
|
||||
if(u != null)
|
||||
Bukkit.getLogger().warning(Internationalization.getPhrase("viewer-error-console", u, command));
|
||||
return;
|
||||
}
|
||||
|
||||
Bukkit.getLogger().info(Internationalization.getPhrase("cmd-executed-console", conn.getRemoteSocketAddress(), Internationalization.utf8ToIso(command)));
|
||||
ConsoleCommandSender sender = Bukkit.getServer().getConsoleSender();
|
||||
|
||||
|
@ -3,33 +3,48 @@ package es.mesacarlos.webconsole.websocket.command;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import es.mesacarlos.webconsole.auth.LoginManager;
|
||||
import es.mesacarlos.webconsole.auth.User;
|
||||
import es.mesacarlos.webconsole.auth.UserType;
|
||||
import es.mesacarlos.webconsole.util.Internationalization;
|
||||
import es.mesacarlos.webconsole.util.LoginManager;
|
||||
import es.mesacarlos.webconsole.websocket.WSServer;
|
||||
import es.mesacarlos.webconsole.websocket.response.LoginRequired;
|
||||
import es.mesacarlos.webconsole.websocket.response.Processed;
|
||||
|
||||
public class LogInCommand implements WSCommand {
|
||||
|
||||
|
||||
@Override
|
||||
public void execute(WSServer wsServer, WebSocket conn, String password) {
|
||||
// If user is logged in, then return.
|
||||
if (LoginManager.getInstance().isLoggedIn(conn.getRemoteSocketAddress()))
|
||||
return;
|
||||
|
||||
// Get password from config files
|
||||
String receivedPassword = wsServer.getMainClass().getConfig().getString("password");
|
||||
|
||||
if (receivedPassword.equals(password)) {
|
||||
// Password is correct, logging in
|
||||
LoginManager.getInstance().logIn(conn.getRemoteSocketAddress());
|
||||
wsServer.sendToClient(conn, new Processed(Internationalization.getPhrase("login-sucessful-message"), "LOGIN ********"));
|
||||
Bukkit.getLogger().info(Internationalization.getPhrase("login-sucessful-console", conn.getRemoteSocketAddress()));
|
||||
} else {
|
||||
// Password was incorrect
|
||||
wsServer.sendToClient(conn, new LoginRequired(Internationalization.getPhrase("login-failed-message")));
|
||||
Bukkit.getLogger().info(Internationalization.getPhrase("login-failed-console", conn.getRemoteSocketAddress()));
|
||||
|
||||
//Check user type and login is password is valid
|
||||
switch(LoginManager.getInstance().isValidUser(password)) {
|
||||
case ADMIN:
|
||||
login(wsServer, conn, LoginManager.getInstance().isValidAdminPassword(password), UserType.ADMIN);
|
||||
break;
|
||||
case VIEWER:
|
||||
login(wsServer, conn, LoginManager.getInstance().isValidViewerPassword(password), UserType.VIEWER);
|
||||
break;
|
||||
case UNKNOWN:
|
||||
wsServer.sendToClient(conn, new LoginRequired(Internationalization.getPhrase("login-failed-message")));
|
||||
Bukkit.getLogger().info(Internationalization.getPhrase("login-failed-console", conn.getRemoteSocketAddress()));
|
||||
break;
|
||||
default:
|
||||
wsServer.sendToClient(conn, new LoginRequired(Internationalization.getPhrase("login-failed-message")));
|
||||
Bukkit.getLogger().info(Internationalization.getPhrase("login-failed-console", conn.getRemoteSocketAddress()));
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void login(WSServer wsServer, WebSocket conn, String username, UserType as) {
|
||||
User user = new User(conn.getRemoteSocketAddress(), username, as);
|
||||
LoginManager.getInstance().logIn(user);
|
||||
|
||||
wsServer.sendToClient(conn, new Processed(Internationalization.getPhrase("login-sucessful-message"), "LOGIN ********"));
|
||||
Bukkit.getLogger().info(Internationalization.getPhrase("login-sucessful-console", user.toString()));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user