use of org.apache.syncope.core.provisioning.api.PropagationByResource in project syncope by apache.
the class AbstractPushResultHandler method update.
protected void update(final Any<?> any, final ProvisioningReport result) {
boolean changepwd;
Collection<String> resourceKeys;
if (any instanceof User) {
changepwd = true;
resourceKeys = userDAO.findAllResourceKeys(any.getKey());
} else if (any instanceof AnyObject) {
changepwd = false;
resourceKeys = anyObjectDAO.findAllResourceKeys(any.getKey());
} else {
changepwd = false;
resourceKeys = groupDAO.findAllResourceKeys(any.getKey());
}
List<String> noPropResources = new ArrayList<>(resourceKeys);
noPropResources.remove(profile.getTask().getResource().getKey());
PropagationByResource propByRes = new PropagationByResource();
propByRes.add(ResourceOperation.CREATE, profile.getTask().getResource().getKey());
PropagationReporter reporter = taskExecutor.execute(propagationManager.getUpdateTasks(any.getType().getKind(), any.getKey(), changepwd, null, propByRes, null, noPropResources), false);
reportPropagation(result, reporter);
}
use of org.apache.syncope.core.provisioning.api.PropagationByResource in project syncope by apache.
the class AbstractPushResultHandler method provision.
protected void provision(final Any<?> any, final Boolean enabled, final ProvisioningReport result) {
AnyTO before = getAnyTO(any.getKey());
List<String> noPropResources = new ArrayList<>(before.getResources());
noPropResources.remove(profile.getTask().getResource().getKey());
PropagationByResource propByRes = new PropagationByResource();
propByRes.add(ResourceOperation.CREATE, profile.getTask().getResource().getKey());
PropagationReporter reporter = taskExecutor.execute(propagationManager.getCreateTasks(any.getType().getKind(), any.getKey(), propByRes, before.getVirAttrs(), noPropResources), false);
reportPropagation(result, reporter);
}
use of org.apache.syncope.core.provisioning.api.PropagationByResource in project syncope by apache.
the class DefaultRealmPushResultHandler method deprovision.
private void deprovision(final Realm realm, final ProvisioningReport result) {
List<String> noPropResources = new ArrayList<>(realm.getResourceKeys());
noPropResources.remove(profile.getTask().getResource().getKey());
PropagationByResource propByRes = new PropagationByResource();
propByRes.addAll(ResourceOperation.DELETE, realm.getResourceKeys());
PropagationReporter reporter = taskExecutor.execute(propagationManager.createTasks(realm, propByRes, noPropResources), false);
reportPropagation(result, reporter);
}
use of org.apache.syncope.core.provisioning.api.PropagationByResource in project syncope by apache.
the class DefaultAnyObjectProvisioningManager method deprovision.
@Override
public List<PropagationStatus> deprovision(final String key, final Collection<String> resources, final boolean nullPriorityAsync) {
PropagationByResource propByRes = new PropagationByResource();
propByRes.addAll(ResourceOperation.DELETE, resources);
List<PropagationTaskTO> tasks = propagationManager.getDeleteTasks(AnyTypeKind.ANY_OBJECT, key, propByRes, anyObjectDAO.findAllResourceKeys(key).stream().filter(resource -> !resources.contains(resource)).collect(Collectors.toList()));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
}
use of org.apache.syncope.core.provisioning.api.PropagationByResource in project syncope by apache.
the class DefaultAnyObjectProvisioningManager method provision.
@Override
public List<PropagationStatus> provision(final String key, final Collection<String> resources, final boolean nullPriorityAsync) {
PropagationByResource propByRes = new PropagationByResource();
propByRes.addAll(ResourceOperation.UPDATE, resources);
List<PropagationTaskTO> tasks = propagationManager.getUpdateTasks(AnyTypeKind.ANY_OBJECT, key, false, null, propByRes, null, null);
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
}
Aggregations