Search in sources :

Example 1 with DBUser

use of games.strategy.engine.lobby.server.userDB.DBUser in project triplea by triplea-game.

the class UserControllerIntegrationTest method testGet.

@Test
public void testGet() {
    final DBUser user = createUserWithMd5CryptHash();
    assertEquals(user, controller.getUserByName(user.getName()));
}
Also used : DBUser(games.strategy.engine.lobby.server.userDB.DBUser) Test(org.junit.jupiter.api.Test)

Example 2 with DBUser

use of games.strategy.engine.lobby.server.userDB.DBUser in project triplea by triplea-game.

the class UserManager method updateUser.

@Override
public String updateUser(final String userName, final String emailAddress, final String hashedPassword) {
    final INode remote = MessageContext.getSender();
    if (!userName.equals(remote.getName())) {
        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";
    }
    final DBUser user = new DBUser(new DBUser.UserName(userName), new DBUser.UserEmail(emailAddress));
    if (!user.isValid()) {
        return user.getValidationErrorMessage();
    }
    final HashedPassword password = new HashedPassword(hashedPassword);
    try {
        new UserController().updateUser(user, password.isHashedWithSalt() ? password : new HashedPassword(BCrypt.hashpw(hashedPassword, BCrypt.gensalt())));
    } catch (final IllegalStateException e) {
        return e.getMessage();
    }
    return null;
}
Also used : INode(games.strategy.net.INode) DBUser(games.strategy.engine.lobby.server.userDB.DBUser) UserController(games.strategy.engine.lobby.server.db.UserController) HashedPassword(games.strategy.engine.lobby.server.db.HashedPassword)

Example 3 with DBUser

use of games.strategy.engine.lobby.server.userDB.DBUser in project triplea by triplea-game.

the class LobbyMenu method updateAccountDetails.

private void updateAccountDetails() {
    final IUserManager manager = (IUserManager) lobbyFrame.getLobbyClient().getRemoteMessenger().getRemote(IUserManager.USER_MANAGER);
    final DBUser user = manager.getUserInfo(lobbyFrame.getLobbyClient().getMessenger().getLocalNode().getName());
    if (user == null) {
        JOptionPane.showMessageDialog(this, "No user info found", "Error", JOptionPane.ERROR_MESSAGE);
        return;
    }
    final CreateUpdateAccountPanel panel = CreateUpdateAccountPanel.newUpdatePanel(user, LobbyLoginPreferences.load());
    final CreateUpdateAccountPanel.ReturnValue returnValue = panel.show(lobbyFrame);
    if (returnValue == CreateUpdateAccountPanel.ReturnValue.CANCEL) {
        return;
    }
    final String error = Strings.emptyToNull("" + Strings.nullToEmpty(manager.updateUser(panel.getUserName(), panel.getEmail(), Md5Crypt.hashPassword(panel.getPassword(), Md5Crypt.newSalt()))) + Strings.nullToEmpty(manager.updateUser(panel.getUserName(), panel.getEmail(), RsaAuthenticator.hashPasswordWithSalt(panel.getPassword()))));
    if (error != null) {
        JOptionPane.showMessageDialog(this, error, "Error", JOptionPane.ERROR_MESSAGE);
        return;
    }
    panel.getLobbyLoginPreferences().save();
}
Also used : IUserManager(games.strategy.engine.lobby.server.IUserManager) DBUser(games.strategy.engine.lobby.server.userDB.DBUser) CreateUpdateAccountPanel(games.strategy.engine.lobby.client.login.CreateUpdateAccountPanel)

Example 4 with DBUser

use of games.strategy.engine.lobby.server.userDB.DBUser in project triplea by triplea-game.

the class ModeratorControllerIntegrationTest method setUp.

@BeforeEach
public void setUp() throws UnknownHostException {
    moderatorController = new ModeratorController(serverMessenger, null);
    final String adminName = Util.createUniqueTimeStamp();
    final DBUser dbUser = new DBUser(new DBUser.UserName(adminName), new DBUser.UserEmail("n@n.n"), DBUser.Role.ADMIN);
    final UserController userController = new UserController();
    userController.createUser(dbUser, new HashedPassword(BCrypt.hashpw(adminName, BCrypt.gensalt())));
    userController.makeAdmin(dbUser);
    adminNode = new Node(adminName, InetAddress.getLocalHost(), 0);
    when(serverMessenger.getPlayerMac(adminName)).thenReturn(newHashedMacAddress());
}
Also used : INode(games.strategy.net.INode) Node(games.strategy.net.Node) DBUser(games.strategy.engine.lobby.server.userDB.DBUser) UserController(games.strategy.engine.lobby.server.db.UserController) HashedPassword(games.strategy.engine.lobby.server.db.HashedPassword) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 5 with DBUser

use of games.strategy.engine.lobby.server.userDB.DBUser in project triplea by triplea-game.

the class UserControllerIntegrationTest method testUpdate.

@Test
public void testUpdate() throws Exception {
    final DBUser user = createUserWithMd5CryptHash();
    assertTrue(controller.doesUserExist(user.getName()));
    final String password2 = md5Crypt("foo");
    final String email2 = "foo@foo.foo";
    controller.updateUser(new DBUser(new DBUser.UserName(user.getName()), new DBUser.UserEmail(email2)), new HashedPassword(bcrypt(obfuscate(Util.createUniqueTimeStamp()))));
    controller.updateUser(new DBUser(new DBUser.UserName(user.getName()), new DBUser.UserEmail(email2)), new HashedPassword(password2));
    try (Connection con = connectionSupplier.get()) {
        final String sql = " select * from ta_users where username = '" + user.getName() + "'";
        final ResultSet rs = con.createStatement().executeQuery(sql);
        assertTrue(rs.next());
        assertEquals(email2, rs.getString("email"));
        assertEquals(password2, rs.getString("password"));
        assertNull(rs.getString("bcrypt_password"));
    }
}
Also used : Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) DBUser(games.strategy.engine.lobby.server.userDB.DBUser) Test(org.junit.jupiter.api.Test)

Aggregations

DBUser (games.strategy.engine.lobby.server.userDB.DBUser)9 HashedPassword (games.strategy.engine.lobby.server.db.HashedPassword)3 UserController (games.strategy.engine.lobby.server.db.UserController)3 Test (org.junit.jupiter.api.Test)3 INode (games.strategy.net.INode)2 CreateUpdateAccountPanel (games.strategy.engine.lobby.client.login.CreateUpdateAccountPanel)1 IUserManager (games.strategy.engine.lobby.server.IUserManager)1 Node (games.strategy.net.Node)1 Connection (java.sql.Connection)1 ResultSet (java.sql.ResultSet)1 Nullable (javax.annotation.Nullable)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1