@Override public void checkClinicalAnalysisPermission(long studyId, long analysisId, String userId, ClinicalAnalysisAclEntry.ClinicalAnalysisPermissions permission) throws CatalogException { Query query = new Query() .append(ClinicalAnalysisDBAdaptor.QueryParams.UID.key(), analysisId) .append(ClinicalAnalysisDBAdaptor.QueryParams.STUDY_UID.key(), studyId); StudyAclEntry.StudyPermissions studyPermission; switch (permission) { case VIEW: studyPermission = StudyAclEntry.StudyPermissions.VIEW_CLINICAL_ANALYSIS; break; case UPDATE: studyPermission = StudyAclEntry.StudyPermissions.WRITE_CLINICAL_ANALYSIS; break; case DELETE: studyPermission = StudyAclEntry.StudyPermissions.DELETE_CLINICAL_ANALYSIS; break; default: throw new CatalogAuthorizationException("Permission " + permission.toString() + " not found"); } if (checkUserPermission(userId, query, studyPermission, clinicalAnalysisDBAdaptor)) { return; } throw CatalogAuthorizationException.deny(userId, permission.toString(), "ClinicalAnalysis", analysisId, null); }