if (expression.startsWith(":login")) {
Pair<String, Option<String>> command = parseStringCommand(expression);
if (!command.second().isEmpty()) {
if (command.second().get().equals(password)) {
authenticated = true;
return new ConsoleResult(expression, one(success("Logged in")));
} else {
return new ConsoleResult(expression, one(error("Invalid password")));
}
} else {
return new ConsoleResult(expression, one(error("Please specify password")));
}
} else {
return new ConsoleResult(expression, one(error("Please authenticate first.\n :login <password> to authenticate.\n :logout at the end of the session to finish.")));
}
} else {
if (expression.startsWith(":logout")) {
authenticated = false;
return new ConsoleResult(expression, one(error("Logged out")));
} else {
return super.execute(expression);
}
}
}