#1141 Move TOTP code during login as separate step: /2fa code
Rough version. - Introduces a limbo player state on the LimboPlayer, allowing us to add further mandatory actions between successful (password) authentication and the ability to play on the server
This commit is contained in:
@@ -11,7 +11,6 @@ import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
@@ -57,19 +56,7 @@ public class LoginCommandTest {
|
||||
command.executeCommand(sender, Collections.singletonList("password"));
|
||||
|
||||
// then
|
||||
verify(management).performLogin(sender, "password", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCallManagementForPasswordAndTotpCode() {
|
||||
// given
|
||||
Player sender = mock(Player.class);
|
||||
|
||||
// when
|
||||
command.executeCommand(sender, Arrays.asList("pwd", "12345"));
|
||||
|
||||
// then
|
||||
verify(management).performLogin(sender, "pwd", "12345");
|
||||
verify(management).performLogin(sender, "password" );
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -76,7 +76,7 @@ public class LimboPlayerTaskManagerTest {
|
||||
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(interval);
|
||||
|
||||
// when
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, false);
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, LimboMessageType.REGISTER);
|
||||
|
||||
// then
|
||||
verify(limboPlayer).setMessageTask(any(MessageTask.class));
|
||||
@@ -94,7 +94,7 @@ public class LimboPlayerTaskManagerTest {
|
||||
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(0);
|
||||
|
||||
// when
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, true);
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, LimboMessageType.LOG_IN);
|
||||
|
||||
// then
|
||||
verifyZeroInteractions(limboPlayer, bukkitService);
|
||||
@@ -113,7 +113,7 @@ public class LimboPlayerTaskManagerTest {
|
||||
given(messages.retrieveSingle(player, MessageKey.REGISTER_MESSAGE)).willReturn("Please register!");
|
||||
|
||||
// when
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, false);
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, LimboMessageType.REGISTER);
|
||||
|
||||
// then
|
||||
assertThat(limboPlayer.getMessageTask(), not(nullValue()));
|
||||
@@ -137,7 +137,7 @@ public class LimboPlayerTaskManagerTest {
|
||||
given(messages.retrieveSingle(player, MessageKey.CAPTCHA_FOR_REGISTRATION_REQUIRED, captcha)).willReturn("Need to use captcha");
|
||||
|
||||
// when
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, false);
|
||||
limboPlayerTaskManager.registerMessageTask(player, limboPlayer, LimboMessageType.REGISTER);
|
||||
|
||||
// then
|
||||
assertThat(limboPlayer.getMessageTask(), not(nullValue()));
|
||||
|
||||
@@ -90,7 +90,7 @@ public class LimboServiceTest {
|
||||
limboService.createLimboPlayer(player, true);
|
||||
|
||||
// then
|
||||
verify(taskManager).registerMessageTask(eq(player), any(LimboPlayer.class), eq(true));
|
||||
verify(taskManager).registerMessageTask(eq(player), any(LimboPlayer.class), eq(LimboMessageType.LOG_IN));
|
||||
verify(taskManager).registerTimeoutTask(eq(player), any(LimboPlayer.class));
|
||||
verify(player).setAllowFlight(false);
|
||||
verify(player).setFlySpeed(0.0f);
|
||||
@@ -121,7 +121,7 @@ public class LimboServiceTest {
|
||||
limboService.createLimboPlayer(player, false);
|
||||
|
||||
// then
|
||||
verify(taskManager).registerMessageTask(eq(player), any(LimboPlayer.class), eq(false));
|
||||
verify(taskManager).registerMessageTask(eq(player), any(LimboPlayer.class), eq(LimboMessageType.REGISTER));
|
||||
verify(taskManager).registerTimeoutTask(eq(player), any(LimboPlayer.class));
|
||||
verify(permissionsManager, only()).hasGroupSupport();
|
||||
verify(player).setAllowFlight(false);
|
||||
@@ -209,7 +209,7 @@ public class LimboServiceTest {
|
||||
|
||||
// then
|
||||
verify(taskManager).registerTimeoutTask(player, limbo);
|
||||
verify(taskManager).registerMessageTask(player, limbo, true);
|
||||
verify(taskManager).registerMessageTask(player, limbo, LimboMessageType.LOG_IN);
|
||||
verify(authGroupHandler).setGroup(player, limbo, AuthGroupType.REGISTERED_UNAUTHENTICATED);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user