public List<QueryResult<JobAclEntry>> getAcls(String studyStr, List<String> jobList, String member, boolean silent, String sessionId) throws CatalogException { List<QueryResult<JobAclEntry>> jobAclList = new ArrayList<>(jobList.size()); for (String job : jobList) { try { MyResource<Job> resource = getUid(job, studyStr, sessionId); QueryResult<JobAclEntry> allJobAcls; if (StringUtils.isNotEmpty(member)) { allJobAcls = authorizationManager.getJobAcl(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), member); } else { allJobAcls = authorizationManager.getAllJobAcls(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser()); } allJobAcls.setId(job); jobAclList.add(allJobAcls); } catch (CatalogException e) { if (silent) { jobAclList.add(new QueryResult<>(job, 0, 0, 0, "", e.toString(), new ArrayList<>(0))); } else { throw e; } } } return jobAclList; }
public QueryResult<Job> visit(String studyStr, String jobId, String sessionId) throws CatalogException { MyResource resource = getUid(jobId, studyStr, sessionId); authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), JobAclEntry.JobPermissions.VIEW); ObjectMap params = new ObjectMap(JobDBAdaptor.QueryParams.VISITED.key(), true); return jobDBAdaptor.update(resource.getResource().getUid(), params, QueryOptions.empty()); }
@Override public QueryResult<Job> update(String studyStr, String entryStr, ObjectMap parameters, QueryOptions options, String sessionId) throws CatalogException { ParamUtils.checkObj(parameters, "parameters"); options = ParamUtils.defaultObject(options, QueryOptions::new); MyResource resource = getUid(entryStr, studyStr, sessionId); authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), JobAclEntry.JobPermissions.UPDATE); QueryResult<Job> queryResult = jobDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.job, resource.getResource().getUid(), resource.getUser(), parameters, null, null); return queryResult; }
public void setStatus(String studyStr, String id, String status, String message, String sessionId) throws CatalogException { ParamUtils.checkParameter(sessionId, "sessionId"); MyResource resource = getUid(id, studyStr, sessionId); authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), JobAclEntry.JobPermissions.UPDATE); if (status != null && !Job.JobStatus.isValid(status)) { throw new CatalogException("The status " + status + " is not valid job status."); } ObjectMap parameters = new ObjectMap(); parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_NAME.key(), status); parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_MSG.key(), message); jobDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.job, resource.getResource().getUid(), resource.getUser(), parameters, null, null); }