mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-12-19 15:17:56 +01:00
Minor: Use CommonService for permission lookup
- Some changes found in a very old patch :) - drop injection of PermissionsManager in favor of CommonService - Rename IsEqualByReflectionMatcher's method to something more specific to differentiate it better from Hamcrest's equalTo() matcher
This commit is contained in:
parent
329657bd5f
commit
8d5afa7fbc
@ -5,7 +5,6 @@ import fr.xephi.authme.data.auth.PlayerAuth;
|
||||
import fr.xephi.authme.data.auth.PlayerCache;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
import fr.xephi.authme.message.MessageKey;
|
||||
import fr.xephi.authme.permission.PermissionsManager;
|
||||
import fr.xephi.authme.process.AsynchronousProcess;
|
||||
import fr.xephi.authme.process.register.executors.RegistrationExecutor;
|
||||
import fr.xephi.authme.process.register.executors.RegistrationMethod;
|
||||
@ -35,8 +34,6 @@ public class AsyncRegister implements AsynchronousProcess {
|
||||
@Inject
|
||||
private CommonService service;
|
||||
@Inject
|
||||
private PermissionsManager permissionsManager;
|
||||
@Inject
|
||||
private SingletonStore<RegistrationExecutor> registrationExecutorFactory;
|
||||
@Inject
|
||||
private BungeeSender bungeeSender;
|
||||
@ -106,7 +103,7 @@ public class AsyncRegister implements AsynchronousProcess {
|
||||
if (maxRegPerIp > 0
|
||||
&& !"127.0.0.1".equalsIgnoreCase(ip)
|
||||
&& !"localhost".equalsIgnoreCase(ip)
|
||||
&& !permissionsManager.hasPermission(player, ALLOW_MULTIPLE_ACCOUNTS)) {
|
||||
&& !service.hasPermission(player, ALLOW_MULTIPLE_ACCOUNTS)) {
|
||||
List<String> otherAccounts = database.getAllAuthsByIp(ip);
|
||||
if (otherAccounts.size() >= maxRegPerIp) {
|
||||
service.send(player, MessageKey.MAX_REGISTER_EXCEEDED, Integer.toString(maxRegPerIp),
|
||||
|
@ -4,7 +4,6 @@ import fr.xephi.authme.data.auth.PlayerAuth;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
import fr.xephi.authme.mail.EmailService;
|
||||
import fr.xephi.authme.message.MessageKey;
|
||||
import fr.xephi.authme.permission.PermissionsManager;
|
||||
import fr.xephi.authme.process.SyncProcessManager;
|
||||
import fr.xephi.authme.security.PasswordSecurity;
|
||||
import fr.xephi.authme.security.crypts.HashedPassword;
|
||||
@ -25,9 +24,6 @@ import static fr.xephi.authme.settings.properties.EmailSettings.RECOVERY_PASSWOR
|
||||
*/
|
||||
class EmailRegisterExecutor implements RegistrationExecutor<EmailRegisterParams> {
|
||||
|
||||
@Inject
|
||||
private PermissionsManager permissionsManager;
|
||||
|
||||
@Inject
|
||||
private DataSource dataSource;
|
||||
|
||||
@ -46,7 +42,7 @@ class EmailRegisterExecutor implements RegistrationExecutor<EmailRegisterParams>
|
||||
@Override
|
||||
public boolean isRegistrationAdmitted(EmailRegisterParams params) {
|
||||
final int maxRegPerEmail = commonService.getProperty(EmailSettings.MAX_REG_PER_EMAIL);
|
||||
if (maxRegPerEmail > 0 && !permissionsManager.hasPermission(params.getPlayer(), ALLOW_MULTIPLE_ACCOUNTS)) {
|
||||
if (maxRegPerEmail > 0 && !commonService.hasPermission(params.getPlayer(), ALLOW_MULTIPLE_ACCOUNTS)) {
|
||||
int otherAccounts = dataSource.countAuthsByEmail(params.getEmail());
|
||||
if (otherAccounts >= maxRegPerEmail) {
|
||||
commonService.send(params.getPlayer(), MessageKey.MAX_REGISTER_EXCEEDED,
|
||||
|
@ -31,7 +31,7 @@ public final class IsEqualByReflectionMatcher<T> extends TypeSafeMatcher<T> {
|
||||
* @param <T> the object's type
|
||||
* @return the matcher for the expected object
|
||||
*/
|
||||
public static <T> Matcher<T> isEqualTo(T expected) {
|
||||
public static <T> Matcher<T> hasEqualValuesOnAllFields(T expected) {
|
||||
return new IsEqualByReflectionMatcher<>(expected);
|
||||
}
|
||||
|
||||
@ -70,7 +70,7 @@ public final class IsEqualByReflectionMatcher<T> extends TypeSafeMatcher<T> {
|
||||
Class<?> currentClass = object.getClass();
|
||||
while (currentClass != null) {
|
||||
for (Field f : currentClass.getDeclaredFields()) {
|
||||
if (!Modifier.isStatic(f.getModifiers())) {
|
||||
if (!Modifier.isStatic(f.getModifiers()) && !f.isSynthetic()) {
|
||||
fields.add(f);
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static fr.xephi.authme.IsEqualByReflectionMatcher.isEqualTo;
|
||||
import static fr.xephi.authme.IsEqualByReflectionMatcher.hasEqualValuesOnAllFields;
|
||||
import static org.hamcrest.Matchers.contains;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
@ -305,7 +305,7 @@ public class NewAPITest {
|
||||
|
||||
// then
|
||||
verify(management).performRegister(eq(RegistrationMethod.API_REGISTRATION),
|
||||
argThat(isEqualTo(ApiPasswordRegisterParams.of(player, pass, true))));
|
||||
argThat(hasEqualValuesOnAllFields(ApiPasswordRegisterParams.of(player, pass, true))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -319,7 +319,7 @@ public class NewAPITest {
|
||||
|
||||
// then
|
||||
verify(management).performRegister(eq(RegistrationMethod.API_REGISTRATION),
|
||||
argThat(isEqualTo(ApiPasswordRegisterParams.of(player, pass, false))));
|
||||
argThat(hasEqualValuesOnAllFields(ApiPasswordRegisterParams.of(player, pass, false))));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -30,7 +30,7 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.time.Instant;
|
||||
|
||||
import static fr.xephi.authme.IsEqualByReflectionMatcher.isEqualTo;
|
||||
import static fr.xephi.authme.IsEqualByReflectionMatcher.hasEqualValuesOnAllFields;
|
||||
import static org.hamcrest.Matchers.contains;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
@ -427,7 +427,7 @@ public class AuthMeApiTest {
|
||||
|
||||
// then
|
||||
verify(management).performRegister(eq(RegistrationMethod.API_REGISTRATION),
|
||||
argThat(isEqualTo(ApiPasswordRegisterParams.of(player, pass, true))));
|
||||
argThat(hasEqualValuesOnAllFields(ApiPasswordRegisterParams.of(player, pass, true))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -441,7 +441,7 @@ public class AuthMeApiTest {
|
||||
|
||||
// then
|
||||
verify(management).performRegister(eq(RegistrationMethod.API_REGISTRATION),
|
||||
argThat(isEqualTo(ApiPasswordRegisterParams.of(player, pass, false))));
|
||||
argThat(hasEqualValuesOnAllFields(ApiPasswordRegisterParams.of(player, pass, false))));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -30,7 +30,7 @@ import org.mockito.junit.MockitoJUnitRunner;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import static fr.xephi.authme.IsEqualByReflectionMatcher.isEqualTo;
|
||||
import static fr.xephi.authme.IsEqualByReflectionMatcher.hasEqualValuesOnAllFields;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
@ -101,7 +101,7 @@ public class RegisterCommandTest {
|
||||
// then
|
||||
verify(registrationCaptchaManager).isCaptchaRequired("test2");
|
||||
verify(management).performRegister(eq(RegistrationMethod.TWO_FACTOR_REGISTRATION),
|
||||
argThat(isEqualTo(TwoFactorRegisterParams.of(player))));
|
||||
argThat(hasEqualValuesOnAllFields(TwoFactorRegisterParams.of(player))));
|
||||
verifyZeroInteractions(emailService);
|
||||
}
|
||||
|
||||
@ -221,7 +221,7 @@ public class RegisterCommandTest {
|
||||
verify(validationService).validateEmail(playerMail);
|
||||
verify(emailService).hasAllInformation();
|
||||
verify(management).performRegister(eq(RegistrationMethod.EMAIL_REGISTRATION),
|
||||
argThat(isEqualTo(EmailRegisterParams.of(player, playerMail))));
|
||||
argThat(hasEqualValuesOnAllFields(EmailRegisterParams.of(player, playerMail))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -250,7 +250,7 @@ public class RegisterCommandTest {
|
||||
// then
|
||||
verify(registrationCaptchaManager).isCaptchaRequired("newPlayer");
|
||||
verify(management).performRegister(eq(RegistrationMethod.PASSWORD_REGISTRATION),
|
||||
argThat(isEqualTo(PasswordRegisterParams.of(player, "myPass", null))));
|
||||
argThat(hasEqualValuesOnAllFields(PasswordRegisterParams.of(player, "myPass", null))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -268,7 +268,7 @@ public class RegisterCommandTest {
|
||||
// then
|
||||
verify(validationService).validateEmail(email);
|
||||
verify(management).performRegister(eq(RegistrationMethod.PASSWORD_REGISTRATION),
|
||||
argThat(isEqualTo(PasswordRegisterParams.of(player, "myPass", email))));
|
||||
argThat(hasEqualValuesOnAllFields(PasswordRegisterParams.of(player, "myPass", email))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -303,7 +303,7 @@ public class RegisterCommandTest {
|
||||
// then
|
||||
verify(registrationCaptchaManager).isCaptchaRequired("Doa");
|
||||
verify(management).performRegister(eq(RegistrationMethod.PASSWORD_REGISTRATION),
|
||||
argThat(isEqualTo(PasswordRegisterParams.of(player, "myPass", null))));
|
||||
argThat(hasEqualValuesOnAllFields(PasswordRegisterParams.of(player, "myPass", null))));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -5,7 +5,6 @@ import fr.xephi.authme.TestHelper;
|
||||
import fr.xephi.authme.data.auth.PlayerCache;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
import fr.xephi.authme.message.MessageKey;
|
||||
import fr.xephi.authme.permission.PermissionsManager;
|
||||
import fr.xephi.authme.process.register.executors.PasswordRegisterParams;
|
||||
import fr.xephi.authme.process.register.executors.RegistrationExecutor;
|
||||
import fr.xephi.authme.process.register.executors.RegistrationMethod;
|
||||
@ -39,8 +38,6 @@ public class AsyncRegisterTest {
|
||||
@Mock
|
||||
private PlayerCache playerCache;
|
||||
@Mock
|
||||
private PermissionsManager permissionsManager;
|
||||
@Mock
|
||||
private CommonService commonService;
|
||||
@Mock
|
||||
private DataSource dataSource;
|
||||
|
@ -5,7 +5,6 @@ import fr.xephi.authme.data.auth.PlayerAuth;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
import fr.xephi.authme.mail.EmailService;
|
||||
import fr.xephi.authme.message.MessageKey;
|
||||
import fr.xephi.authme.permission.PermissionsManager;
|
||||
import fr.xephi.authme.permission.PlayerStatePermission;
|
||||
import fr.xephi.authme.process.SyncProcessManager;
|
||||
import fr.xephi.authme.security.PasswordSecurity;
|
||||
@ -35,13 +34,11 @@ import static org.mockito.Mockito.verifyZeroInteractions;
|
||||
* Test for {@link EmailRegisterExecutor}.
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class EmailRegisterExecutorProviderTest {
|
||||
public class EmailRegisterExecutorTest {
|
||||
|
||||
@InjectMocks
|
||||
private EmailRegisterExecutor executor;
|
||||
|
||||
@Mock
|
||||
private PermissionsManager permissionsManager;
|
||||
@Mock
|
||||
private DataSource dataSource;
|
||||
@Mock
|
||||
@ -68,7 +65,7 @@ public class EmailRegisterExecutorProviderTest {
|
||||
// then
|
||||
assertThat(result, equalTo(false));
|
||||
verify(dataSource).countAuthsByEmail(email);
|
||||
verify(permissionsManager).hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS);
|
||||
verify(commonService).hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS);
|
||||
verify(commonService).send(player, MessageKey.MAX_REGISTER_EXCEEDED, "3", "4", "@");
|
||||
}
|
||||
|
||||
@ -77,7 +74,7 @@ public class EmailRegisterExecutorProviderTest {
|
||||
// given
|
||||
given(commonService.getProperty(EmailSettings.MAX_REG_PER_EMAIL)).willReturn(3);
|
||||
Player player = mock(Player.class);
|
||||
given(permissionsManager.hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)).willReturn(true);
|
||||
given(commonService.hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)).willReturn(true);
|
||||
EmailRegisterParams params = EmailRegisterParams.of(player, "test@example.com");
|
||||
|
||||
// when
|
||||
@ -85,7 +82,7 @@ public class EmailRegisterExecutorProviderTest {
|
||||
|
||||
// then
|
||||
assertThat(result, equalTo(true));
|
||||
verify(permissionsManager).hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS);
|
||||
verify(commonService).hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -102,7 +99,7 @@ public class EmailRegisterExecutorProviderTest {
|
||||
|
||||
// then
|
||||
assertThat(result, equalTo(true));
|
||||
verify(permissionsManager).hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS);
|
||||
verify(commonService).hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS);
|
||||
verify(dataSource).countAuthsByEmail(email);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package fr.xephi.authme.util;
|
||||
|
||||
import fr.xephi.authme.ReflectionTestUtils;
|
||||
import fr.xephi.authme.TestHelper;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ConcurrentModificationException;
|
||||
@ -51,4 +52,10 @@ public class ExceptionUtilsTest {
|
||||
assertThat(resultNpe, nullValue());
|
||||
assertThat(resultUoe, sameInstance(uoe));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldHaveHiddenConstructor() {
|
||||
// given / when / then
|
||||
TestHelper.validateHasOnlyPrivateEmptyConstructor(ExceptionUtils.class);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user