.getPermissions(); for (E acl : acls) { List<String> permissions = (List<String>) acl.getPermissions().stream().map(a -> a.toString()).collect(Collectors.toList()); currentPermissions.get(QueryParams.ACL.key()).put(acl.getMember(), permissions); currentPermissions.get(QueryParams.USER_DEFINED_ACLS.key()).put(acl.getMember(), permissions);
@Test public void setSampleAclOverride() throws Exception { assertEquals(acl_s1_user2.getPermissions(), aclDBAdaptor.get(s1.getUid(), Arrays.asList(user2.getId()), Entity.SAMPLE).first().getPermissions()); SampleAclEntry newAcl = new SampleAclEntry(user2.getId(), Arrays.asList(SampleAclEntry.SamplePermissions.DELETE.name())); assertTrue(!acl_s1_user2.getPermissions().equals(newAcl.getPermissions())); // Todo: Remove this in 1.4 List<String> allSamplePermissions = EnumSet.allOf(SampleAclEntry.SamplePermissions.class) .stream() .map(String::valueOf) .collect(Collectors.toList()); aclDBAdaptor.setToMembers(Arrays.asList(s1.getUid()), Arrays.asList(user2.getId()), Arrays.asList(SampleAclEntry.SamplePermissions.DELETE.name()), allSamplePermissions, Entity.SAMPLE); // sampleDBAdaptor.setSampleAcl(s1.getId(), newAcl, true); assertEquals(newAcl.getPermissions(), aclDBAdaptor.get(s1.getUid(), Arrays.asList(user2.getId()), Entity.SAMPLE).first().getPermissions()); }
@Test public void testPermissionRulesPlusManualPermissions() throws CatalogException { // We create a new sample s2 Sample s2 = dbAdaptorFactory.getCatalogSampleDBAdaptor().insert(studyId, new Sample("s2", "", new Individual(), null, null, 1, 1, "", "", false, Collections.emptyList(), new ArrayList<>(), Collections.emptyMap()), QueryOptions.empty()).first(); // We create a new permission rule PermissionRule pr = new PermissionRule("myPermissionRule", new Query(), Arrays.asList(user3.getId()), Arrays.asList(SampleAclEntry.SamplePermissions.VIEW.name())); dbAdaptorFactory.getCatalogStudyDBAdaptor().createPermissionRule(studyId, Study.Entity.SAMPLES, pr); // Apply the permission rule aclDBAdaptor.applyPermissionRules(studyId, pr, Study.Entity.SAMPLES); // All the samples should have view permissions for user user2 List<QueryResult<AbstractAclEntry>> queryResults = aclDBAdaptor.get(Arrays.asList(s1.getUid(), s2.getUid()), Arrays.asList(user3.getId()), Entity.SAMPLE); for (QueryResult<AbstractAclEntry> queryResult : queryResults) { assertEquals(1, queryResult.first().getPermissions().size()); assertTrue(queryResult.first().getPermissions().contains(SampleAclEntry.SamplePermissions.VIEW)); } // Assign a manual permission to s2 aclDBAdaptor.addToMembers(Arrays.asList(s2.getUid()), Arrays.asList(user3.getId()), Arrays.asList(SampleAclEntry.SamplePermissions.DELETE.name()), Entity.SAMPLE); }