Class GrouperProvisioningTranslator

java.lang.Object
edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningTranslator
Direct Known Subclasses:
AzureProvisioningTranslator, GoogleProvisioningTranslator, LdapProvisioningTranslator

public class GrouperProvisioningTranslator extends Object
  • Constructor Details

    • GrouperProvisioningTranslator

      public GrouperProvisioningTranslator()
  • Method Details

    • retrieveAllDependenciesForFullSync

      public void retrieveAllDependenciesForFullSync()
    • getGroupIdFieldIdLookedUpForGroupUserDependencies

      public Map<MultiKey,Boolean> getGroupIdFieldIdLookedUpForGroupUserDependencies()
      this is for user translation, group id and field id to if has been looked up. if false then it needs a look up
      Returns:
      the map
    • getGroupIdFieldIdLookedUpForGroupGroupDependencies

      public Map<MultiKey,Boolean> getGroupIdFieldIdLookedUpForGroupGroupDependencies()
      this is for group translation, group id and field id to if has been looked up. if false then it needs a look up
      Returns:
    • getGrouperProvisioner

      public GrouperProvisioner getGrouperProvisioner()
      reference back up to the provisioner
      Returns:
      the provisioner
    • isInGroup

      public boolean isInGroup(String groupName, String memberId)
      Get memberships for user cached groups Loop through fields Batch up groups Get memberships for certain users Get memberships for group cached groups Loop through fields Batch up groups Get memberships for all users Init if not inited Dont have static caches, do this in provisioner Based user stuff on fields Have a arbitrary group method for groups, and privs (4 methods) Update the dependencies as new ones found Read the dependencies if needed (all in full, certain ones for users) Cache in provisioner if retrieved, retrieve if not and update tables
    • groupPrivilegeHolders

      public Set<String> groupPrivilegeHolders(String groupName, String listName, String memberField, String provisionableGroupId)
      get a set of members from another group
      Parameters:
      provisionableGroupId -
      groupName - is the group name to check
      listName - admins, updaters, members, etc
      memberField - subjectId, subjectIdentifier0, subjectIdentifier1, subjectIdentifier2, email
      Returns:
      set of values of subjects in the subject source of the provisioner
    • isHasPrivilege

      public boolean isHasPrivilege(String groupName, String listName, String memberId)
      list name can be admins, updaters, readers, etc
      Parameters:
      groupName -
      listName - admins, updaters, members, etc
      memberId -
      Returns:
      true if has privilege
    • initGroupGroupMemberships

      public void initGroupGroupMemberships(Set<MultiKey> groupIdFieldIdsInput)
      Parameters:
      groupIdFieldIdsInput -
    • initGroupNameToGroupId

      public void initGroupNameToGroupId(Collection<String> groupNames)
    • initGroupNameToGroupIdFromGroupIds

      public void initGroupNameToGroupIdFromGroupIds(Collection<String> groupIds)
    • initGroupsMembershipsOrCache

      public void initGroupsMembershipsOrCache()
    • initGroupUserMemberships

      public void initGroupUserMemberships(Set<MultiKey> groupIdFieldIdsInput)
      Parameters:
      groupIdFieldIdsInput -
      forGroups -
    • setGrouperProvisioner

      public void setGrouperProvisioner(GrouperProvisioner grouperProvisioner1)
      reference back up to the provisioner
      Parameters:
      grouperProvisioner1 -
    • translateGrouperToTargetMemberships

      public List<ProvisioningMembership> translateGrouperToTargetMemberships(List<ProvisioningMembership> grouperProvisioningMemberships, boolean includeDelete)
    • translateGrouperToTargetEntities

      public List<ProvisioningEntity> translateGrouperToTargetEntities(List<ProvisioningEntity> grouperProvisioningEntities, boolean includeDelete, boolean forCreate)
    • continueTranslation

      public static boolean continueTranslation(Map<String,Object> elVariableMap, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
      Parameters:
      elVariableMap -
      grouperProvisioningConfigurationAttribute -
      Returns:
      true if continue with translation otherwise false
    • continueTranslation

      public static boolean continueTranslation(Map<String,Object> elVariableMap, boolean checkForNullsInScript, String translationContinueCondition)
      Parameters:
      elVariableMap -
      checkForNullsInScript -
      translationContinueCondition -
      Returns:
      true if continue with translation otherwise false
    • shouldTranslateEntityAttribute

      public boolean shouldTranslateEntityAttribute(ProvisioningEntityWrapper provisioningEntityWrapper, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
      Parameters:
      provisioningEntityWrapper -
      grouperProvisioningConfigurationAttribute -
      Returns:
    • entityTargetAttributesInTranslationOrder

      public Collection<GrouperProvisioningConfigurationAttribute> entityTargetAttributesInTranslationOrder()
    • translateGrouperToTargetGroups

      public List<ProvisioningGroup> translateGrouperToTargetGroups(List<ProvisioningGroup> grouperProvisioningGroups, boolean includeDelete, boolean forCreate)
    • shouldTranslateGroupAttribute

      public boolean shouldTranslateGroupAttribute(ProvisioningGroupWrapper provisioningGroupWrapper, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
      if the provisioner might generate a transation
      Parameters:
      provisioningGroupWrapper -
      grouperProvisioningConfigurationAttribute -
      Returns:
    • groupAttributesInTranslationOrder

      public Collection<GrouperProvisioningConfigurationAttribute> groupAttributesInTranslationOrder()
    • translateFromGrouperProvisioningEntityField

      public Object translateFromGrouperProvisioningEntityField(ProvisioningEntityWrapper provisioningEntityWrapper, String field)
      translate from gc grouper sync entity and field name to the value
      Parameters:
      provisioningEntityWrapper -
      field -
      Returns:
      the value
    • attributeTranslationOrCache

      public Object attributeTranslationOrCache(Object currentValue, Map<String,Object> elVariableMap, boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute, ProvisioningGroupWrapper provisioningGroupWrapper, ProvisioningEntityWrapper provisioningEntityWrapper)
    • attributeTranslation

      public Object attributeTranslation(Map<String,Object> elVariableMap, boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute, ProvisioningGroupWrapper provisioningGroupWrapper, ProvisioningEntityWrapper provisioningEntityWrapper, boolean[] translate, boolean[] shouldRetrieveFromCache)
      Parameters:
      elVariableMap -
      forCreate -
      grouperProvisioningConfigurationAttribute -
      provisioningGroupWrapper -
      provisioningEntityWrapper -
      translate -
      shouldRetrieveFromCache - - Only retrieve from cache if the object is delete or if there's no other translation possibility, e.g. originated from target
      Returns:
    • attributeTranslationRetrieveFromCache

      public Object attributeTranslationRetrieveFromCache(GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute, ProvisioningGroupWrapper provisioningGroupWrapper, ProvisioningEntityWrapper provisioningEntityWrapper)
    • idTargetGroups

      public void idTargetGroups(List<ProvisioningGroup> targetGroups)
      get the matching and search ids for a target group (could be grouperTargetGroup or targetProvisioningGroup)
      Parameters:
      targetGroups -
    • idTargetEntities

      public void idTargetEntities(List<ProvisioningEntity> targetEntities)
    • massageToString

      public Object massageToString(Object id, int timeToLive)
    • idTargetMemberships

      public void idTargetMemberships(List<ProvisioningMembership> targetMemberships)
    • runScript

      public Object runScript(String script, Map<String,Object> elVariableMap)
    • runScriptStatic

      public static Object runScriptStatic(String script, Map<String,Object> elVariableMap)
    • runExpression

      public Object runExpression(String script, Map<String,Object> elVariableMap)
    • matchingIdTargetObjects

      public void matchingIdTargetObjects()
    • translateFromGrouperProvisioningGroupField

      public Object translateFromGrouperProvisioningGroupField(ProvisioningGroupWrapper provisioningGroupWrapper, String field)
      translate from gc grouper sync group and field name to the value
      Parameters:
      provisioningGroupWrapper -
      field -
      Returns:
      the value
    • setTranslateGrouperToTargetAutomatically

      public void setTranslateGrouperToTargetAutomatically(boolean translateGrouperToTargetAutomatically)
    • isTranslateGrouperToTargetAutomatically

      public boolean isTranslateGrouperToTargetAutomatically()
    • getTranslateFromGrouperProvisioningGroupField

      public String getTranslateFromGrouperProvisioningGroupField(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
    • getTranslateFromGrouperTargetGroupField

      public String getTranslateFromGrouperTargetGroupField(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
    • getTranslateFromGrouperTargetEntityField

      public String getTranslateFromGrouperTargetEntityField(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
    • getTranslateFromGrouperProvisioningEntityField

      public String getTranslateFromGrouperProvisioningEntityField(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
    • getTargetExpressionToUse

      public String getTargetExpressionToUse(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
    • getTranslateFromStaticValuesToUse

      public String getTranslateFromStaticValuesToUse(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute)
    • removeUneededDependencyRows

      public void removeUneededDependencyRows()