public void updateJWTParameters(ObjectMap params, String token) throws CatalogException { if (!ROOT.equals(userManager.getUserId(token))) { throw new CatalogException("Operation only allowed for the OpenCGA admin"); } if (params == null || params.size() == 0) { return; } catalogDBAdaptorFactory.getCatalogMetaDBAdaptor().updateJWTParameters(params); }
public QueryResult<VariableSet> createVariableSet(String studyId, String id, String name, Boolean unique, Boolean confidential, String description, Map<String, Object> attributes, List<Variable> variables, String sessionId) throws CatalogException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = resolveId(studyId, userId); return createVariableSet(study, id, name, unique, confidential, description, attributes, variables, sessionId); }
public QueryResult<Group> getGroup(String studyStr, String groupId, String sessionId) throws CatalogException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = resolveId(studyStr, userId); authorizationManager.checkCanViewStudy(study.getUid(), userId); // Fix the groupId if (groupId != null && !groupId.startsWith("@")) { groupId = "@" + groupId; } return studyDBAdaptor.getGroup(study.getUid(), groupId, Collections.emptyList()); }
public QueryResult<File> link(String studyStr, URI uriOrigin, String pathDestiny, ObjectMap params, String sessionId) throws CatalogException, IOException { // We make two attempts to link to ensure the behaviour remains even if it is being called at the same time link from different // threads String userId = userManager.getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); try { return privateLink(study, uriOrigin, pathDestiny, params, sessionId); } catch (CatalogException | IOException e) { return privateLink(study, uriOrigin, pathDestiny, params, sessionId); } }
public void delete(String panelId, String token) throws CatalogException { String userId = userManager.getUserId(token); if (!authorizationManager.checkIsAdmin(userId)) { throw new CatalogAuthorizationException("Only the main OpenCGA administrator can delete global panels"); } Panel panel = getInstallationPanel(panelId); panelDBAdaptor.delete(panel.getUid()); }
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); }
public QueryResult<PermissionRule> getPermissionRules(String studyStr, Study.Entity entry, String sessionId) throws CatalogException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = resolveId(studyStr, userId); authorizationManager.checkCanViewStudy(study.getUid(), userId); return studyDBAdaptor.getPermissionRules(study.getUid(), entry); }
@Deprecated public QueryResult<File> getParents(long fileId, QueryOptions options, String sessionId) throws CatalogException { QueryResult<File> fileQueryResult = fileDBAdaptor.get(fileId, new QueryOptions(QueryOptions.INCLUDE, Arrays.asList(FileDBAdaptor.QueryParams.PATH.key(), FileDBAdaptor.QueryParams.STUDY_UID.key()))); if (fileQueryResult.getNumResults() == 0) { return fileQueryResult; } String userId = userManager.getUserId(sessionId); authorizationManager.checkFilePermission(fileQueryResult.first().getStudyUid(), fileId, userId, FileAclEntry.FilePermissions.VIEW); return getParents(true, options, fileQueryResult.first().getPath(), fileQueryResult.first().getStudyUid()); }
@Override public DBIterator<Sample> 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.append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); return sampleDBAdaptor.iterator(query, options, userId); }
@Override public DBIterator<Panel> 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.append(PanelDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); return panelDBAdaptor.iterator(query, options, userId); }
public QueryResult<PermissionRule> createPermissionRule(String studyStr, Study.Entity entry, PermissionRule permissionRule, String sessionId) throws CatalogException { ParamUtils.checkObj(entry, "entry"); ParamUtils.checkObj(permissionRule, "permission rule"); String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = resolveId(studyStr, userId); authorizationManager.checkCanUpdatePermissionRules(study.getUid(), userId); validatePermissionRules(study.getUid(), entry, permissionRule); studyDBAdaptor.createPermissionRule(study.getUid(), entry, permissionRule); return new QueryResult<>(study.getFqn(), -1, 1, 1, "", "", Collections.singletonList(permissionRule)); }
@Override public DBIterator<File> 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); fixQueryObject(study, query, sessionId); query.put(FileDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); return fileDBAdaptor.iterator(query, options, userId); }
@Override public DBIterator<Individual> iterator(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { ParamUtils.checkObj(sessionId, "sessionId"); 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.append(IndividualDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); return individualDBAdaptor.iterator(query, options, userId); }
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()); }
@Override public DBIterator<Cohort> iterator(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { options = ParamUtils.defaultObject(options, QueryOptions::new); query = ParamUtils.defaultObject(query, Query::new); String userId = userManager.getUserId(sessionId); Study study = studyManager.resolveId(studyStr, userId); fixQueryObject(study, query, sessionId); Query myQuery = new Query(query).append(CohortDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); return cohortDBAdaptor.iterator(myQuery, options, userId); }
public void markDeletedPermissionRule(String studyStr, Study.Entity entry, String permissionRuleId, PermissionRule.DeleteAction deleteAction, String sessionId) throws CatalogException { ParamUtils.checkObj(entry, "entry"); ParamUtils.checkObj(deleteAction, "Delete action"); ParamUtils.checkObj(permissionRuleId, "permission rule id"); String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = resolveId(studyStr, userId); authorizationManager.checkCanUpdatePermissionRules(study.getUid(), userId); studyDBAdaptor.markDeletedPermissionRule(study.getUid(), entry, permissionRuleId, deleteAction); }
@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); }
@Override public QueryResult<Job> count(String studyStr, Query query, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); String userId = userManager.getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); fixQueryObject(study, query, sessionId); query.append(JobDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); QueryResult<Long> queryResultAux = jobDBAdaptor.count(query, userId, StudyAclEntry.StudyPermissions.VIEW_JOBS); return new QueryResult<>("count", queryResultAux.getDbTime(), 0, queryResultAux.first(), queryResultAux.getWarningMsg(), queryResultAux.getErrorMsg(), Collections.emptyList()); }
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 testAdminUserExists() throws Exception { String token = catalogManager.getUserManager().login("admin", "admin"); assertEquals("admin" ,catalogManager.getUserManager().getUserId(token)); }