@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_LIST + "')") @Transactional(readOnly = true) public <T extends PolicyTO> List<T> list(final PolicyType type) { PolicyUtils policyUtils = policyUtilsFactory.getInstance(type); return policyDAO.find(policyUtils.policyClass()).stream(). <T>map(binder::getPolicyTO).collect(Collectors.toList()); }
@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))); }
@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); }
@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; }
@PreAuthorize("hasRole('" + StandardEntitlement.POLICY_UPDATE + "')") public PolicyTO update(final PolicyType type, final PolicyTO policyTO) { Policy policy = policyDAO.find(policyTO.getKey()); PolicyUtils policyUtils = policyUtilsFactory.getInstance(policy); 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.update(policy, policyTO))); }