use of org.apache.syncope.common.lib.SyncopeClientException in project syncope by apache.
the class PolicyLogic method delete.
@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_DELETE + "')")
public <T extends PolicyTO> T delete(final PolicyType type, final String key) {
Policy policy = policyDAO.find(key);
if (policy == null) {
throw new NotFoundException("Policy " + key + " not found");
}
PolicyUtils policyUtils = policyUtilsFactory.getInstance(policy);
if (type != null && policyUtils.getType() != type) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest);
sce.getElements().add("Found " + type + ", expected " + policyUtils.getType());
throw sce;
}
T deleted = binder.getPolicyTO(policy);
policyDAO.delete(policy);
return deleted;
}
use of org.apache.syncope.common.lib.SyncopeClientException in project syncope by apache.
the class PolicyLogic method create.
@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_CREATE + "')")
public <T extends PolicyTO> T create(final PolicyType type, final T policyTO) {
PolicyUtils policyUtils = policyUtilsFactory.getInstance(policyTO);
if (policyUtils.getType() != type) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest);
sce.getElements().add("Found " + type + ", expected " + policyUtils.getType());
throw sce;
}
return binder.getPolicyTO(policyDAO.save(binder.create(policyTO)));
}
use of org.apache.syncope.common.lib.SyncopeClientException in project syncope by apache.
the class PolicyLogic method read.
@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_READ + "')")
@Transactional(readOnly = true)
public <T extends PolicyTO> T read(final PolicyType type, final String key) {
Policy policy = policyDAO.find(key);
if (policy == null) {
throw new NotFoundException("Policy " + key + " not found");
}
PolicyUtils policyUtils = policyUtilsFactory.getInstance(policy);
if (type != null && policyUtils.getType() != type) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest);
sce.getElements().add("Found " + type + ", expected " + policyUtils.getType());
throw sce;
}
return binder.getPolicyTO(policy);
}
use of org.apache.syncope.common.lib.SyncopeClientException in project syncope by apache.
the class ReportLogic method execute.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_EXECUTE + "')")
@Override
public ExecTO execute(final String key, final Date startAt, final boolean dryRun) {
Report report = reportDAO.find(key);
if (report == null) {
throw new NotFoundException("Report " + key);
}
if (!report.isActive()) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add("Report " + key + " is not active");
throw sce;
}
try {
jobManager.register(report, startAt, confDAO.find("tasks.interruptMaxRetries", 1L));
scheduler.getScheduler().triggerJob(JobNamer.getJobKey(report));
} catch (Exception e) {
LOG.error("While executing report {}", report, e);
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add(e.getMessage());
throw sce;
}
ExecTO result = new ExecTO();
result.setJobType(JobType.REPORT);
result.setRefKey(report.getKey());
result.setRefDesc(binder.buildRefDesc(report));
result.setStart(new Date());
result.setStatus(ReportExecStatus.STARTED.name());
result.setMessage("Job fired; waiting for results...");
return result;
}
use of org.apache.syncope.common.lib.SyncopeClientException in project syncope by apache.
the class ReportLogic method update.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_UPDATE + "')")
public ReportTO update(final ReportTO reportTO) {
Report report = reportDAO.find(reportTO.getKey());
if (report == null) {
throw new NotFoundException("Report " + reportTO.getKey());
}
binder.getReport(report, reportTO);
report = reportDAO.save(report);
try {
jobManager.register(report, null, confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for report " + report.getKey(), e);
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add(e.getMessage());
throw sce;
}
return binder.getReportTO(report);
}
Aggregations