use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class SidUtilsTest method testCreateSidGroup.
@Test
public void testCreateSidGroup() {
Group group = when(mock(Group.class).getId()).thenReturn("groupId").getMock();
Sid sid = SidUtils.createSid(group);
assertEquals(sid, new GrantedAuthoritySid(new SimpleGrantedAuthority("ROLE_groupId")));
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class UsersGroupsPopulatorImpl method populate.
@Override
@Transactional
@RunAsSystem
public void populate() {
if (adminPassword == null) {
throw new RuntimeException("please configure the admin.password property in your molgenis-server.properties");
}
// create admin user
User userAdmin = userFactory.create();
userAdmin.setUsername(USERNAME_ADMIN);
userAdmin.setPassword(adminPassword);
userAdmin.setEmail(adminEmail);
userAdmin.setActive(true);
userAdmin.setSuperuser(true);
userAdmin.setChangePassword(false);
// create anonymous user
User anonymousUser = userFactory.create();
anonymousUser.setUsername(ANONYMOUS_USERNAME);
anonymousUser.setPassword(ANONYMOUS_USERNAME);
anonymousUser.setEmail(anonymousEmail);
anonymousUser.setActive(true);
anonymousUser.setSuperuser(false);
anonymousUser.setChangePassword(false);
// create all users group
Group allUsersGroup = groupFactory.create();
allUsersGroup.setName(AccountService.ALL_USER_GROUP);
// persist entities
dataService.add(USER, Stream.of(userAdmin, anonymousUser));
dataService.add(GROUP, allUsersGroup);
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class PermissionRegistryImpl method getPermissions.
@Override
public Multimap<ObjectIdentity, Pair<Permission, Sid>> getPermissions() {
ImmutableMultimap.Builder<ObjectIdentity, Pair<Permission, Sid>> mapBuilder = new ImmutableMultimap.Builder<>();
Group allUsersGroup = dataService.query(GROUP, Group.class).eq(NAME, ALL_USER_GROUP).findOne();
Sid allUsersGroupSid = createSid(allUsersGroup);
ObjectIdentity pluginIdentity = new PluginIdentity(UserAccountController.ID);
mapBuilder.putAll(pluginIdentity, new Pair<>(PluginPermission.READ, allUsersGroupSid));
dataService.findAll(ENTITY_TYPE_META_DATA, Stream.of(ENTITY_TYPE_META_DATA, ATTRIBUTE_META_DATA, PACKAGE, TAG, LANGUAGE, L10N_STRING, FILE_META, DECORATOR_CONFIGURATION), EntityType.class).forEach(entityType -> {
ObjectIdentity entityTypeIdentity = new EntityTypeIdentity(entityType);
Permission entityTypePermissions = EntityTypePermissionUtils.getCumulativePermission(EntityTypePermission.READ);
mapBuilder.putAll(entityTypeIdentity, new Pair<>(entityTypePermissions, allUsersGroupSid));
});
return mapBuilder.build();
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class PermissionManagerControllerTest method setUp.
@BeforeMethod
public void setUp() {
config.resetMocks();
mockMvc = MockMvcBuilders.standaloneSetup(permissionManagerController).setMessageConverters(gsonHttpMessageConverter).build();
user1 = when(mock(User.class).getId()).thenReturn("1").getMock();
when(user1.isSuperuser()).thenReturn(true);
when(user1.getUsername()).thenReturn("Ipsum");
userSid = new PrincipalSid("Ipsum");
user2 = when(mock(User.class).getId()).thenReturn("2").getMock();
group1 = when(mock(Group.class).getId()).thenReturn("1").getMock();
groupSid = new GrantedAuthoritySid("ROLE_1");
group2 = when(mock(Group.class).getId()).thenReturn("2").getMock();
plugin1 = when(mock(Plugin.class).getId()).thenReturn("1").getMock();
plugin2 = when(mock(Plugin.class).getId()).thenReturn("2").getMock();
pluginIdentity1 = new PluginIdentity(plugin1);
pluginIdentity2 = new PluginIdentity(plugin2);
entityType1 = when(mock(EntityType.class).getId()).thenReturn("1").getMock();
entityType2 = when(mock(EntityType.class).getId()).thenReturn("2").getMock();
entityType3 = when(mock(EntityType.class).getId()).thenReturn("3").getMock();
when(entityType1.getLabel()).thenReturn("label1");
when(entityType2.getLabel()).thenReturn("label2");
when(entityType3.getLabel()).thenReturn("label3");
entityIdentity1 = new EntityTypeIdentity(entityType1);
entityIdentity2 = new EntityTypeIdentity(entityType2);
entityIdentity3 = new EntityTypeIdentity(entityType3);
package1 = when(mock(Package.class).getId()).thenReturn("1").getMock();
package2 = when(mock(Package.class).getId()).thenReturn("2").getMock();
package3 = when(mock(Package.class).getId()).thenReturn("3").getMock();
packageIdentity1 = new PackageIdentity(package1);
packageIdentity2 = new PackageIdentity(package2);
packageIdentity3 = new PackageIdentity(package3);
when(dataService.findAll(USER, User.class)).thenReturn(Stream.of(user1, user2));
when(dataService.findAll(GROUP, Group.class)).thenReturn(Stream.of(group1, group2));
when(dataService.findOneById(GROUP, "1", Group.class)).thenReturn(group1);
when(dataService.findOneById(USER, "1", User.class)).thenReturn(user1);
when(dataService.findAll(PLUGIN, Plugin.class)).thenReturn(Stream.of(plugin1, plugin2));
when(dataService.findAll(ENTITY_TYPE_META_DATA, EntityType.class)).thenReturn(Stream.of(entityType1, entityType2, entityType3));
when(dataService.findAll(PACKAGE, Package.class)).thenReturn(Stream.of(package1, package2, package3));
pluginPermissionRead = PluginPermission.READ;
cumulativeEntityPermissionWritemeta = new CumulativePermission();
cumulativeEntityPermissionWritemeta.set(EntityTypePermission.WRITEMETA).set(EntityTypePermission.WRITE).set(EntityTypePermission.READ).set(EntityTypePermission.COUNT);
cumulativeEntityPermissionWrite = new CumulativePermission();
cumulativeEntityPermissionWrite.set(EntityTypePermission.WRITE).set(EntityTypePermission.READ).set(EntityTypePermission.COUNT);
cumulativeEntityPermissionRead = new CumulativePermission();
cumulativeEntityPermissionRead.set(EntityTypePermission.READ).set(EntityTypePermission.COUNT);
cumulativeEntityPermissionCount = new CumulativePermission();
cumulativeEntityPermissionCount.set(EntityTypePermission.COUNT);
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class PermissionManagerController method toPluginPermissions.
private Permissions toPluginPermissions(List<Plugin> plugins, Map<ObjectIdentity, Acl> aclMap, Sid sid) {
Permissions permissions = new Permissions();
// set permissions: entity ids
Map<String, String> pluginMap = plugins.stream().collect(toMap(Plugin::getId, Plugin::getId, (u, v) -> {
throw new IllegalStateException(format("Duplicate key %s", u));
}, LinkedHashMap::new));
permissions.setEntityIds(pluginMap);
// set permissions: user of group id
boolean isUser = setUserOrGroup(sid, permissions);
// set permissions: permissions
aclMap.forEach((objectIdentity, acl) -> {
String pluginId = objectIdentity.getIdentifier().toString();
acl.getEntries().forEach(ace -> {
if (ace.getSid().equals(sid)) {
org.molgenis.security.permission.Permission pluginPermission = toPluginPermission(ace);
if (isUser) {
permissions.addUserPermission(pluginId, pluginPermission);
} else {
permissions.addGroupPermission(pluginId, pluginPermission);
}
}
});
});
return permissions;
}
Aggregations