package games.strategy.engine.lobby.server;
import java.util.logging.Logger;
import games.strategy.engine.lobby.server.userDB.DBUser;
import games.strategy.engine.lobby.server.userDB.DBUserController;
import games.strategy.engine.message.IRemoteMessenger;
import games.strategy.engine.message.MessageContext;
import games.strategy.net.INode;
public class UserManager implements IUserManager {
private static final Logger s_logger = Logger.getLogger(UserManager.class.getName());
public void register(final IRemoteMessenger messenger) {
messenger.registerRemote(this, IUserManager.USER_MANAGER);
}
/**
* Update the user info, returning an error string if an error occurs.
*/
@Override
public String updateUser(final String userName, final String emailAddress, final String hashedPassword) {
final INode remote = MessageContext.getSender();
if (!userName.equals(remote.getName())) {
s_logger
.severe("Tried to update user permission, but not correct user, userName:" + userName + " node:" + remote);
return "Sorry, but I can't let you do that";
}
try {
new DBUserController().updateUser(userName, emailAddress, hashedPassword, false);
} catch (final IllegalStateException e) {
return e.getMessage();
}
return null;
}
/**
* Update the user info, returning an error string if an error occurs.
*/
@Override
public DBUser getUserInfo(final String userName) {
final INode remote = MessageContext.getSender();
if (!userName.equals(remote.getName())) {
s_logger.severe("Tried to get user info, but not correct user, userName:" + userName + " node:" + remote);
throw new IllegalStateException("Sorry, but I can't let you do that");
}
return new DBUserController().getUser(userName);
}
}