@Override public void confirmPasswordReset(final String key, final String token, final String password) { WorkflowResult<Pair<UserPatch, Boolean>> updated = uwfAdapter.confirmPasswordReset(key, token, password); List<PropagationTaskInfo> taskInfos = propagationManager.getUserUpdateTasks(updated); taskExecutor.execute(taskInfos, false); } }
@PreAuthorize("hasRole('" + StandardEntitlement.CONFIGURATION_EXPORT + "')") @Transactional(readOnly = true) public void export(final OutputStream os) { try { exporter.export( AuthContextUtils.getDomain(), os, uwfAdapter.getPrefix(), gwfAdapter.getPrefix(), awfAdapter.getPrefix()); LOG.debug("Database content successfully exported"); } catch (Exception e) { LOG.error("While exporting database content", e); } }
@Override public void requestPasswordReset(final String key) { uwfAdapter.requestPasswordReset(key); }
updated = uwfAdapter.update(userPatch); } catch (Exception e) { LOG.error("Update of user {} failed, trying to pull its status anyway (if configured)", enableUpdate = uwfAdapter.activate(userPatch.getKey(), null); } else if (enabled && user.isSuspended()) { enableUpdate = uwfAdapter.reactivate(userPatch.getKey()); } else if (!enabled && !user.isSuspended()) { enableUpdate = uwfAdapter.suspend(userPatch.getKey());
enableUpdate = uwfAdapter.activate(key, null); } else if (enabled && user.isSuspended()) { enableUpdate = uwfAdapter.reactivate(key); } else if (!enabled && !user.isSuspended()) { enableUpdate = uwfAdapter.suspend(key);
@Override public String unlink(final UserPatch userPatch) { WorkflowResult<Pair<UserPatch, Boolean>> updated = uwfAdapter.update(userPatch); return updated.getResult().getLeft().getKey(); }
@Override public Pair<String, List<PropagationStatus>> reactivate( final StatusPatch statusPatch, final boolean nullPriorityAsync) { WorkflowResult<String> updated = statusPatch.isOnSyncope() ? uwfAdapter.reactivate(statusPatch.getKey()) : new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase()); return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync)); }
@Override public Pair<String, List<PropagationStatus>> suspend( final StatusPatch statusPatch, final boolean nullPriorityAsync) { WorkflowResult<String> updated = statusPatch.isOnSyncope() ? uwfAdapter.suspend(statusPatch.getKey()) : new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase()); return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync)); }
@Override public Pair<String, List<PropagationStatus>> activate( final StatusPatch statusPatch, final boolean nullPriorityAsync) { WorkflowResult<String> updated = statusPatch.isOnSyncope() ? uwfAdapter.activate(statusPatch.getKey(), statusPatch.getToken()) : new WorkflowResult<>(statusPatch.getKey(), null, statusPatch.getType().name().toLowerCase()); return Pair.of(updated.getResult(), propagateStatus(statusPatch, nullPriorityAsync)); }
@Override public void internalSuspend(final String key) { Pair<WorkflowResult<String>, Boolean> updated = uwfAdapter.internalSuspend(key); // propagate suspension if and only if it is required by policy if (updated != null && updated.getRight()) { UserPatch userPatch = new UserPatch(); userPatch.setKey(updated.getLeft().getResult()); List<PropagationTaskInfo> taskInfos = propagationManager.getUserUpdateTasks(new WorkflowResult<>( Pair.of(userPatch, Boolean.FALSE), updated.getLeft().getPropByRes(), updated.getLeft().getPerformedTasks())); taskExecutor.execute(taskInfos, false); } }
@Transactional(propagation = Propagation.REQUIRES_NEW) @Override public Pair<String, List<PropagationStatus>> create( final UserTO userTO, final boolean storePassword, final boolean disablePwdPolicyCheck, final Boolean enabled, final Set<String> excludedResources, final boolean nullPriorityAsync) { WorkflowResult<Pair<String, Boolean>> created = uwfAdapter.create(userTO, disablePwdPolicyCheck, enabled, storePassword); List<PropagationTaskInfo> taskInfos = propagationManager.getUserCreateTasks( created.getResult().getLeft(), userTO.getPassword(), created.getResult().getRight(), created.getPropByRes(), userTO.getVirAttrs(), excludedResources); PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, nullPriorityAsync); return Pair.of(created.getResult().getLeft(), propagationReporter.getStatuses()); }
@Transactional(propagation = Propagation.REQUIRES_NEW) @Override public List<PropagationStatus> delete( final String key, final Set<String> excludedResources, final boolean nullPriorityAsync) { PropagationByResource propByRes = new PropagationByResource(); propByRes.set(ResourceOperation.DELETE, userDAO.findAllResourceKeys(key)); // Note here that we can only notify about "delete", not any other // task defined in workflow process definition: this because this // information could only be available after uwfAdapter.delete(), which // will also effectively remove user from db, thus making virtually // impossible by NotificationManager to fetch required user information List<PropagationTaskInfo> taskInfos = propagationManager.getDeleteTasks( AnyTypeKind.USER, key, propByRes, excludedResources); PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, nullPriorityAsync); try { uwfAdapter.delete(key); } catch (PropagationException e) { throw e; } return propagationReporter.getStatuses(); }
@Override public String link(final UserPatch userPatch) { return uwfAdapter.update(userPatch).getResult().getLeft().getKey(); }
@Override public Pair<UserPatch, List<PropagationStatus>> update(final UserPatch userPatch, final boolean nullPriorityAsync) { WorkflowResult<Pair<UserPatch, Boolean>> updated = uwfAdapter.update(userPatch); List<PropagationTaskInfo> taskInfos = propagationManager.getUserUpdateTasks(updated); PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, nullPriorityAsync); return Pair.of(updated.getResult().getLeft(), propagationReporter.getStatuses()); }
@Override protected WorkflowResult<? extends AnyPatch> update(final AnyPatch patch) { WorkflowResult<Pair<UserPatch, Boolean>> update = uwfAdapter.update((UserPatch) patch); return new WorkflowResult<>(update.getResult().getLeft(), update.getPropByRes(), update.getPerformedTasks()); } }
@Override protected WorkflowResult<? extends AnyPatch> update(final AnyPatch patch) { WorkflowResult<Pair<UserPatch, Boolean>> update = uwfAdapter.update((UserPatch) patch); return new WorkflowResult<>(update.getResult().getLeft(), update.getPropByRes(), update.getPerformedTasks()); }