Interface PropagationManager

    • Field Detail

      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
    • Method Detail

      • getCreateTasks

        List<PropagationTaskInfo> getCreateTasks​(AnyTypeKind kind,
                                                 String key,
                                                 Boolean enable,
                                                 PropagationByResource<String> propByRes,
                                                 Collection<Attr> vAttrs,
                                                 Collection<String> excludedResources)
        Create the any object tasks for every associated resource, unless in excludedResources.
        Parameters:
        kind - any object type kind
        key - any object key
        enable - whether any object 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​(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 for the any object on each resource associated, unless in excludedResources.
        Parameters:
        kind - any object type kind
        key - any object key
        changePwd - whether password should be included for propagation attributes or not
        enable - whether any object 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 for the any object from each resource associated, unless in excludedResources.
        Parameters:
        kind - any object type kind
        key - any object 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
      • 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 object type kind
        key - any object key
        password - to be set (for users)
        changePwd - whether password should be included for propagation attributes or not (for users)
        enable - whether any object 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