use of org.graylog2.users.UserImpl in project graylog2-server by Graylog2.
the class UserServiceImplTest method testGetPermissionsForUser.
@Test
public void testGetPermissionsForUser() throws Exception {
final InMemoryRolePermissionResolver permissionResolver = mock(InMemoryRolePermissionResolver.class);
final GRNRegistry grnRegistry = GRNRegistry.createWithBuiltinTypes();
final UserService userService = new UserServiceImpl(mongoConnection, configuration, roleService, accessTokenService, userFactory, permissionResolver, serverEventBus, grnRegistry, permissionAndRoleResolver);
final UserImplFactory factory = new UserImplFactory(new Configuration(), permissions);
final UserImpl user = factory.create(new HashMap<>());
user.setName("user");
final Role role = createRole("Foo");
user.setRoleIds(Collections.singleton(role.getId()));
user.setPermissions(Collections.singletonList("hello:world"));
when(permissionResolver.resolveStringPermission(role.getId())).thenReturn(Collections.singleton("foo:bar"));
final GRNPermission ownerShipPermission = GRNPermission.create(RestPermissions.ENTITY_OWN, grnRegistry.newGRN(GRNTypes.DASHBOARD, "1234"));
final GRN userGRN = grnRegistry.ofUser(user);
when(permissionAndRoleResolver.resolvePermissionsForPrincipal(userGRN)).thenReturn(ImmutableSet.of(new CaseSensitiveWildcardPermission("perm:from:grant"), ownerShipPermission));
final String roleId = "12345";
when(permissionAndRoleResolver.resolveRolesForPrincipal(userGRN)).thenReturn(ImmutableSet.of(roleId));
when(permissionResolver.resolveStringPermission(roleId)).thenReturn(ImmutableSet.of("perm:from:role"));
assertThat(userService.getPermissionsForUser(user).stream().map(p -> p instanceof CaseSensitiveWildcardPermission ? p.toString() : p).collect(Collectors.toSet())).containsExactlyInAnyOrder("users:passwordchange:user", "users:edit:user", "foo:bar", "hello:world", "users:tokenlist:user", "users:tokencreate:user", "users:tokenremove:user", "perm:from:grant", ownerShipPermission, "perm:from:role");
}
use of org.graylog2.users.UserImpl in project graylog2-server by Graylog2.
the class UserImplTest method testLastNameLengthValidation.
@Test
public void testLastNameLengthValidation() {
user = new UserImpl(null, null, null);
ValidationResult result = user.getValidations().get(UserImpl.LAST_NAME).validate(StringUtils.repeat("*", 10));
assertTrue(result.passed());
result = user.getValidations().get(UserImpl.LAST_NAME).validate(StringUtils.repeat("*", 210));
assertFalse(result.passed());
}
use of org.graylog2.users.UserImpl in project graylog2-server by Graylog2.
the class UserImplTest method testFirstNameLengthValidation.
@Test
public void testFirstNameLengthValidation() {
user = new UserImpl(null, null, null);
ValidationResult result = user.getValidations().get(UserImpl.FIRST_NAME).validate(StringUtils.repeat("*", 10));
assertTrue(result.passed());
result = user.getValidations().get(UserImpl.FIRST_NAME).validate(StringUtils.repeat("*", 210));
assertFalse(result.passed());
}
use of org.graylog2.users.UserImpl in project graylog2-server by Graylog2.
the class UserContextTest method runAs.
@Test
void runAs() {
// Simulate what we do in the DefaultSecurityManagerProvider
DefaultSecurityManager sm = new DefaultSecurityManager();
SecurityUtils.setSecurityManager(sm);
final DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO();
final DefaultSessionStorageEvaluator sessionStorageEvaluator = new DefaultSessionStorageEvaluator() {
@Override
public boolean isSessionStorageEnabled(Subject subject) {
// save to session if we already have a session. do not create on just for saving the subject
return subject.getSession(false) != null;
}
};
sessionStorageEvaluator.setSessionStorageEnabled(false);
subjectDAO.setSessionStorageEvaluator(sessionStorageEvaluator);
sm.setSubjectDAO(subjectDAO);
final User user = new UserImpl(mock(PasswordAlgorithmFactory.class), mock(Permissions.class), ImmutableMap.of());
when(userService.load(anyString())).thenReturn(user);
when(userService.loadById(anyString())).thenReturn(user);
final String USERID = "123456";
UserContext.<Void>runAs(USERID, () -> {
final UserContext userContext = new UserContext.Factory(userService).create();
assertThat(userContext.getUserId()).isEqualTo(USERID);
assertThat(userContext.getUser()).isEqualTo(user);
return null;
});
}
Aggregations