Interface PropagationManager

All Known Implementing Classes:
DefaultPropagationManager

public interface PropagationManager
  • Field Details

    • MANDATORY_MISSING_ATTR_NAME

      static final String MANDATORY_MISSING_ATTR_NAME
      Name for special propagation attribute used to indicate whether there are attributes, marked as mandatory in the mapping but not to be propagated.
      See Also:
    • MANDATORY_NULL_OR_EMPTY_ATTR_NAME

      static final String MANDATORY_NULL_OR_EMPTY_ATTR_NAME
      Name for special propagation attribute used to indicate whether there are attributes, marked as mandatory in the mapping but about to be propagated as null or empty.
      See Also:
  • Method Details

    • getCreateTasks

      List<PropagationTaskInfo> getCreateTasks(AnyTypeKind kind, String key, Boolean enable, PropagationByResource<String> propByRes, Collection<Attr> vAttrs, Collection<String> excludedResources)
      Create the tasks for every associated resource, unless in excludedResources.
      Parameters:
      kind - any type kind
      key - any key
      enable - whether any should be enabled or not
      propByRes - operation to be performed per resource
      vAttrs - virtual attributes to be set
      excludedResources - external resources performing not to be considered for propagation
      Returns:
      list of propagation tasks
    • getUserCreateTasks

      List<PropagationTaskInfo> getUserCreateTasks(String key, String password, Boolean enable, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<Attr> vAttrs, Collection<String> excludedResources)
      Create the user tasks for every associated resource, unless in excludedResources.
      Parameters:
      key - user key
      password - to be set
      enable - whether user must be enabled or not
      propByRes - operation to be performed per resource
      propByLinkedAccount - operation to be performed for linked accounts
      vAttrs - virtual attributes to be set
      excludedResources - external resources not to be considered for propagation
      Returns:
      list of propagation tasks
    • getUpdateTasks

      List<PropagationTaskInfo> getUpdateTasks(AnyUR anyUR, AnyTypeKind kind, String key, boolean changePwd, Boolean enable, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<Attr> vAttrs, Collection<String> excludedResources)
      Create the update tasks on each resource associated, unless in excludedResources.
      Parameters:
      anyUR - update request
      kind - any type kind
      key - any key
      changePwd - whether password should be included for propagation attributes or not
      enable - whether any should be enabled or not, may be null to leave unchanged
      propByRes - operation to be performed per resource
      propByLinkedAccount - operation to be performed for linked accounts
      vAttrs - virtual attributes to be set
      excludedResources - external resource keys not to be considered for propagation
      Returns:
      list of propagation tasks
    • getUserUpdateTasks

      List<PropagationTaskInfo> getUserUpdateTasks(UserWorkflowResult<Pair<UserUR,Boolean>> wfResult, boolean changePwd, Collection<String> excludedResources)
      Create the update tasks for the user on each resource associated, unless in excludedResources.
      Parameters:
      wfResult - user to be propagated (and info associated), as per result from workflow
      changePwd - whether password should be included for propagation attributes or not
      excludedResources - external resources not to be considered for propagation
      Returns:
      list of propagation tasks
    • getUserUpdateTasks

      List<PropagationTaskInfo> getUserUpdateTasks(UserWorkflowResult<Pair<UserUR,Boolean>> wfResult)
      Create the update tasks for the user on each resource associated; propagate password update only to requested resources.
      Parameters:
      wfResult - user to be propagated (and info associated), as per result from workflow
      Returns:
      list of propagation tasks
    • getDeleteTasks

      List<PropagationTaskInfo> getDeleteTasks(AnyTypeKind kind, String key, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<String> excludedResources)
      Create the delete tasks from each resource associated, unless in excludedResources.
      Parameters:
      kind - any type kind
      key - any key
      propByRes - operation to be performed per resource
      propByLinkedAccount - operation to be performed for linked accounts
      excludedResources - external resource keys not to be considered for propagation
      Returns:
      list of propagation tasks
    • newTask

      PropagationTaskInfo newTask(DerAttrHandler derAttrHandler, Any<?> any, ExternalResource resource, ResourceOperation operation, Provision provision, Stream<Item> mappingItems, Pair<String,Set<Attribute>> preparedAttrs)
    • createTasks

      List<PropagationTaskInfo> createTasks(Realm realm, PropagationByResource<String> propByRes, Collection<String> excludedResources)
      Create the needed tasks for the realm for each resource associated, unless in excludedResources.
      Parameters:
      realm - realm
      propByRes - operation to be performed per resource
      excludedResources - external resource keys not to be considered for propagation
      Returns:
      list of propagation tasks
    • prepareAttrs

      Map<Pair<String,String>,Set<Attribute>> prepareAttrs(AnyTypeKind kind, String key, String password, boolean changePwd, Boolean enable, Collection<String> excludedResources)
      Prepare attributes for propagation.
      Parameters:
      kind - any type kind
      key - any key
      password - to be set (for users)
      changePwd - whether password should be included for propagation attributes or not (for users)
      enable - whether any should be enabled or not, may be null to leave unchanged
      excludedResources - external resource keys not to be considered for propagation
      Returns:
      map with prepared attributes per External Resource
    • prepareAttrs

      Map<Pair<String,String>,Set<Attribute>> prepareAttrs(Realm realm)
      Prepare attributes for propagation.
      Parameters:
      realm - realm
      Returns:
      map with prepared attributes per External Resource
    • setAttributeDeltas

      List<PropagationTaskInfo> setAttributeDeltas(List<PropagationTaskInfo> tasks, Map<Pair<String,String>,Set<Attribute>> beforeAttrs)
      Enrich the provided tasks with attribute deltas.
      Parameters:
      tasks - propagation tasks
      beforeAttrs - attribute values before update
      Returns:
      enriched propagation tasks