SampleManager(AuthorizationManager authorizationManager, AuditManager auditManager, CatalogManager catalogManager, DBAdaptorFactory catalogDBAdaptorFactory, CatalogIOManagerFactory ioManagerFactory, Configuration configuration) { super(authorizationManager, auditManager, catalogManager, catalogDBAdaptorFactory, ioManagerFactory, configuration); this.userManager = catalogManager.getUserManager(); this.studyManager = catalogManager.getStudyManager(); }
IndividualManager(AuthorizationManager authorizationManager, AuditManager auditManager, CatalogManager catalogManager, DBAdaptorFactory catalogDBAdaptorFactory, CatalogIOManagerFactory ioManagerFactory, Configuration configuration) { super(authorizationManager, auditManager, catalogManager, catalogDBAdaptorFactory, ioManagerFactory, configuration); this.userManager = catalogManager.getUserManager(); this.studyManager = catalogManager.getStudyManager(); }
public static DataStore getDataStore(CatalogManager catalogManager, String studyStr, File.Bioformat bioformat, String sessionId) throws CatalogException { Study study = catalogManager.getStudyManager().get(studyStr, new QueryOptions(), sessionId).first(); return getDataStore(catalogManager, study, bioformat, sessionId); }
private Map<String, Group> getGroupMap() throws CatalogException { return catalogManager.getStudyManager().get(studyFqn, null, ownerSessionId).first().getGroups() .stream() .collect(Collectors.toMap(Group::getName, f -> f)); }
@Test public void removeUserFromRole() throws CatalogException { // catalogManager.unshareStudy(studyFqn, externalUser, studyAdmin1SessionId); Study.StudyAclParams aclParams = new Study.StudyAclParams(null, AclParams.Action.RESET, null); catalogManager.getStudyManager().updateAcl(Arrays.asList(studyFqn), externalUser, aclParams, studyAdmin1SessionId).get(0); List<QueryResult<StudyAclEntry>> studyAcls = catalogManager.getStudyManager().getAcls(Collections.singletonList(studyFqn), externalUser, false, studyAdmin1SessionId); assertEquals(1, studyAcls.size()); assertEquals(0, studyAcls.get(0).getNumResults()); }
public void fillGaps(String studyStr, List<String> samples, ObjectMap config, String sessionId) throws CatalogException, IllegalAccessException, InstantiationException, ClassNotFoundException, StorageEngineException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); DataStore dataStore = getDataStore(study.getFqn(), sessionId); VariantStorageEngine variantStorageEngine = storageEngineFactory.getVariantStorageEngine(dataStore.getStorageEngine(), dataStore.getDbName()); if (samples == null || samples.size() < 2) { throw new IllegalArgumentException("Fill gaps operation requires at least two samples!"); } variantStorageEngine.fillGaps(study.getFqn(), samples, config); }
@Test public void smartResolutorStudyAliasFromAnonymousUser() throws CatalogException { catalogManager.getStudyManager().updateGroup(studyFqn, "@members", new GroupParams("*", GroupParams.Action.ADD), sessionIdUser); Study study = catalogManager.getStudyManager().resolveId(studyFqn, "*"); assertTrue(study != null); }
private void fillStudy(String studyId, VariantStudyMetadata studyMetadata) throws CatalogException { QueryOptions options = new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.DESCRIPTION.key()); // Just add file description Study study = catalogManager.getStudyManager().get(studyId, options, sessionId).first(); studyMetadata.setDescription(study.getDescription()); }
@Test public void addExistingUserToRole() throws CatalogException { String newUser = "newUser"; catalogManager.getUserManager().create(newUser, newUser, "email@ccc.ccc", password, "ASDF", null, Account.FULL, null, null); Study.StudyAclParams aclParams = new Study.StudyAclParams("", AclParams.Action.ADD, AuthorizationManager.ROLE_ANALYST); catalogManager.getStudyManager().updateAcl(Arrays.asList(studyFqn), newUser, aclParams, ownerSessionId).get(0); }
@Test public void readFileForbiddenForUser() throws CatalogException { // Remove all permissions to the admin group in that folder catalogManager.getStudyManager().createGroup(studyFqn, groupMember, externalUser, ownerSessionId); catalogManager.getStudyManager().updateAcl(Arrays.asList(studyFqn), groupMember, new Study.StudyAclParams("", AclParams.Action.SET, "admin"), ownerSessionId); fileManager.updateAcl(studyFqn, Arrays.asList(data_d1_d2), externalUser, new File.FileAclParams(DENY_FILE_PERMISSIONS, AclParams.Action.SET, null), ownerSessionId); thrown.expect(CatalogAuthorizationException.class); catalogManager.getFileManager().get(studyFqn, data_d1_d2, null, externalSessionId); }
@Test public void addNonExistingGroupToRole() throws CatalogException { String groupNotRegistered = "@groupNotRegistered"; thrown.expect(CatalogDBException.class); thrown.expectMessage("not found"); catalogManager.getStudyManager().updateAcl(Arrays.asList(studyFqn), groupNotRegistered, new Study.StudyAclParams("", AclParams.Action.SET, AuthorizationManager.ROLE_ANALYST), studyAdmin1SessionId); }
public QueryResult<ClinicalAnalysis> count(String studyStr, Query query, String sessionId) throws CatalogException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); fixQueryObject(query, study, sessionId); query.append(ClinicalAnalysisDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); QueryResult<Long> queryResultAux = clinicalDBAdaptor.count(query, userId, StudyAclEntry.StudyPermissions.VIEW_CLINICAL_ANALYSIS); return new QueryResult<>("count", queryResultAux.getDbTime(), 0, queryResultAux.first(), queryResultAux.getWarningMsg(), queryResultAux.getErrorMsg(), Collections.emptyList()); }
@Test public void testUpdatePermissionRulesIncorrectPermission() throws CatalogException { PermissionRule rules = new PermissionRule("rules1", new Query("a", "b"), Arrays.asList("user2", "user3"), Arrays.asList("VV", "UPDATE")); thrown.expect(CatalogException.class); thrown.expectMessage("Detected unsupported"); catalogManager.getStudyManager().createPermissionRule(studyFqn, Study.Entity.SAMPLES, rules, sessionIdUser); }
@Override public DBIterator<Job> iterator(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); options = ParamUtils.defaultObject(options, QueryOptions::new); String userId = userManager.getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); query.put(JobDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); fixQueryObject(study, query, sessionId); return jobDBAdaptor.iterator(query, options, userId); }
public void fillMissing(String studyStr, boolean overwrite, ObjectMap config, String sessionId) throws CatalogException, IllegalAccessException, InstantiationException, ClassNotFoundException, StorageEngineException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); DataStore dataStore = getDataStore(study.getFqn(), sessionId); VariantStorageEngine variantStorageEngine = storageEngineFactory.getVariantStorageEngine(dataStore.getStorageEngine(), dataStore.getDbName()); variantStorageEngine.fillMissing(study.getFqn(), config, overwrite); }
@Test public void createStudyFailMoreThanOneProject() throws CatalogException { catalogManager.getProjectManager().incrementRelease(project1, sessionIdUser); catalogManager.getProjectManager().create("1000G2", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser); // Create a new study without providing the project. It should raise an error because the user owns more than one project thrown.expect(CatalogException.class); thrown.expectMessage("More than one project found"); catalogManager.getStudyManager().create(null, "phasexx", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
public void setUpCatalogManager(CatalogManager catalogManager) throws IOException, CatalogException { catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); String projectId = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first().getId(); catalogManager.getStudyManager().create(projectId, "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
public void setUpCatalogManager(CatalogManager catalogManager) throws IOException, CatalogException { catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); String projectId = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first().getId(); catalogManager.getStudyManager().create(projectId, "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
@Test public void readSampleSharedForOthersNotWithStudyPermissions() throws CatalogException, IOException { // Add a new user to a new group String newUser = "newUser"; catalogManager.getUserManager().create(newUser, newUser, "asda@mail.com", password, "org", 1000L, Account.FULL, null, null); String sessionId = catalogManager.getUserManager().login(ownerUser, password); catalogManager.getStudyManager().updateGroup(studyFqn, "@members", new GroupParams(newUser, GroupParams.Action.ADD), ownerSessionId); QueryResult<Sample> sample = catalogManager.getSampleManager().get(studyFqn, smp6.getId(), null, sessionId); assertEquals(1, sample.getNumResults()); }
@Test public void testGetAllJobs() throws CatalogException { Query query = new Query(StudyDBAdaptor.QueryParams.OWNER.key(), "user"); String studyId = catalogManager.getStudyManager().get(query, null, sessionIdUser).first().getId(); catalogManager.getJobManager().create(studyId, new Job().setId("myErrorJob").setToolId("samtools"), null, sessionIdUser); QueryResult<Job> allJobs = catalogManager.getJobManager().get(studyId, (Query) null, null, sessionIdUser); assertEquals(1, allJobs.getNumTotalResults()); assertEquals(1, allJobs.getNumResults()); }