use of org.molgenis.util.Pair in project molgenis by molgenis.
the class EntityUtils method getReferencingEntityType.
public static List<Pair<EntityType, List<Attribute>>> getReferencingEntityType(EntityType entityType, DataService dataService) {
List<Pair<EntityType, List<Attribute>>> referencingEntityType = newArrayList();
// get entity types that referencing the given entity (including self)
String entityTypeId = entityType.getId();
dataService.getEntityTypeIds().forEach(otherEntityName -> {
EntityType otherEntityType = dataService.getEntityType(otherEntityName);
// get referencing attributes for other entity
List<Attribute> referencingAttributes = null;
for (Attribute attribute : otherEntityType.getAtomicAttributes()) {
EntityType refEntityType = attribute.getRefEntity();
if (refEntityType != null && refEntityType.getId().equals(entityTypeId)) {
if (referencingAttributes == null)
referencingAttributes = newArrayList();
referencingAttributes.add(attribute);
}
}
// store references
if (referencingAttributes != null) {
referencingEntityType.add(new Pair<>(otherEntityType, referencingAttributes));
}
});
return referencingEntityType;
}
use of org.molgenis.util.Pair 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.util.Pair in project molgenis by molgenis.
the class PermissionRegistryImplTest method testGetPermissions.
@Test
public void testGetPermissions() {
@SuppressWarnings("unchecked") Query<Group> query = mock(Query.class);
when(query.eq("name", "All Users")).thenReturn(query);
when(dataService.query("sys_sec_Group", Group.class)).thenReturn(query);
Group group = when(mock(Group.class).getId()).thenReturn("group0").getMock();
when(query.findOne()).thenReturn(group);
Multimap<ObjectIdentity, Pair<Permission, Sid>> expectedPermissions = ImmutableListMultimap.of(new PluginIdentity("useraccount"), new Pair<>(PluginPermission.READ, new GrantedAuthoritySid("ROLE_group0")));
assertEquals(permissionRegistryImpl.getPermissions(), expectedPermissions);
}
use of org.molgenis.util.Pair in project molgenis by molgenis.
the class PermissionPopulatorTest method testPopulate.
@Test
public void testPopulate() {
ApplicationContext applicationContext = mock(ApplicationContext.class);
ObjectIdentity objectIdentity0 = new ObjectIdentityImpl("type", "id0");
PermissionRegistry permissionRegistry0 = mock(PermissionRegistry.class);
Multimap<ObjectIdentity, Pair<Permission, Sid>> registry0Permissions = ArrayListMultimap.create();
registry0Permissions.put(objectIdentity0, new Pair<>(mock(Permission.class), mock(Sid.class)));
when(permissionRegistry0.getPermissions()).thenReturn(registry0Permissions);
ObjectIdentity objectIdentity1 = new ObjectIdentityImpl("type", "id1");
Multimap<ObjectIdentity, Pair<Permission, Sid>> registry1Permissions = ArrayListMultimap.create();
registry1Permissions.put(objectIdentity1, new Pair<>(mock(Permission.class), mock(Sid.class)));
PermissionRegistry permissionRegistry1 = mock(PermissionRegistry.class);
when(permissionRegistry1.getPermissions()).thenReturn(registry1Permissions);
Map<String, PermissionRegistry> registryMap = new LinkedHashMap<>();
registryMap.put("registry0", permissionRegistry0);
registryMap.put("registry1", permissionRegistry1);
when(applicationContext.getBeansOfType(PermissionRegistry.class)).thenReturn(registryMap);
MutableAcl acl0 = mock(MutableAcl.class);
doReturn(acl0).when(mutableAclService).readAclById(objectIdentity0);
MutableAcl acl1 = mock(MutableAcl.class);
doReturn(acl1).when(mutableAclService).readAclById(objectIdentity1);
permissionPopulator.populate(applicationContext);
verify(mutableAclService).updateAcl(acl0);
verify(mutableAclService).updateAcl(acl1);
}
use of org.molgenis.util.Pair in project molgenis by molgenis.
the class WebAppPermissionRegistry method getPermissions.
@Override
public Multimap<ObjectIdentity, Pair<Permission, Sid>> getPermissions() {
User anonymousUser = dataService.query(USER, User.class).eq(USERNAME, ANONYMOUS_USERNAME).findOne();
Group allUsersGroup = dataService.query(GROUP, Group.class).eq(NAME, ALL_USER_GROUP).findOne();
ObjectIdentity pluginIdentity = new PluginIdentity(HomeController.ID);
return new ImmutableMultimap.Builder<ObjectIdentity, Pair<Permission, Sid>>().putAll(pluginIdentity, new Pair<>(PluginPermission.READ, createSid(anonymousUser)), new Pair<>(PluginPermission.READ, createSid(allUsersGroup))).build();
}
Aggregations