Class GrouperProvisioningTranslator
java.lang.Object
edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningTranslator
- Direct Known Subclasses:
AzureProvisioningTranslator
,GoogleProvisioningTranslator
,LdapProvisioningTranslator
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionattributeTranslation
(Map<String, Object> elVariableMap, boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute, ProvisioningGroupWrapper provisioningGroupWrapper, ProvisioningEntityWrapper provisioningEntityWrapper, boolean[] translate, boolean[] shouldRetrieveFromCache) attributeTranslationOrCache
(Object currentValue, Map<String, Object> elVariableMap, boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute, ProvisioningGroupWrapper provisioningGroupWrapper, ProvisioningEntityWrapper provisioningEntityWrapper) attributeTranslationRetrieveFromCache
(GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute, ProvisioningGroupWrapper provisioningGroupWrapper, ProvisioningEntityWrapper provisioningEntityWrapper) static boolean
continueTranslation
(Map<String, Object> elVariableMap, boolean checkForNullsInScript, String translationContinueCondition) static boolean
continueTranslation
(Map<String, Object> elVariableMap, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) reference back up to the provisionerthis is for group translation, group id and field id to if has been looked up.this is for user translation, group id and field id to if has been looked up.getTargetExpressionToUse
(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) getTranslateFromGrouperProvisioningEntityField
(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) getTranslateFromGrouperProvisioningGroupField
(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) getTranslateFromGrouperTargetEntityField
(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) getTranslateFromGrouperTargetGroupField
(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) getTranslateFromStaticValuesToUse
(boolean forCreate, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) groupPrivilegeHolders
(String groupName, String listName, String memberField, String provisionableGroupId) get a set of members from another groupvoid
idTargetEntities
(List<ProvisioningEntity> targetEntities) void
idTargetGroups
(List<ProvisioningGroup> targetGroups) get the matching and search ids for a target group (could be grouperTargetGroup or targetProvisioningGroup)void
idTargetMemberships
(List<ProvisioningMembership> targetMemberships) void
initGroupGroupMemberships
(Set<MultiKey> groupIdFieldIdsInput) void
initGroupNameToGroupId
(Collection<String> groupNames) void
initGroupNameToGroupIdFromGroupIds
(Collection<String> groupIds) void
void
initGroupUserMemberships
(Set<MultiKey> groupIdFieldIdsInput) boolean
isHasPrivilege
(String groupName, String listName, String memberId) list name can be admins, updaters, readers, etcboolean
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 tablesboolean
massageToString
(Object id, int timeToLive) void
void
void
runExpression
(String script, Map<String, Object> elVariableMap) static Object
runScriptStatic
(String script, Map<String, Object> elVariableMap) void
setGrouperProvisioner
(GrouperProvisioner grouperProvisioner1) reference back up to the provisionervoid
setTranslateGrouperToTargetAutomatically
(boolean translateGrouperToTargetAutomatically) boolean
shouldTranslateEntityAttribute
(ProvisioningEntityWrapper provisioningEntityWrapper, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) boolean
shouldTranslateGroupAttribute
(ProvisioningGroupWrapper provisioningGroupWrapper, GrouperProvisioningConfigurationAttribute grouperProvisioningConfigurationAttribute) if the provisioner might generate a transationtranslateFromGrouperProvisioningEntityField
(ProvisioningEntityWrapper provisioningEntityWrapper, String field) translate from gc grouper sync entity and field name to the valuetranslateFromGrouperProvisioningGroupField
(ProvisioningGroupWrapper provisioningGroupWrapper, String field) translate from gc grouper sync group and field name to the valuetranslateGrouperToTargetEntities
(List<ProvisioningEntity> grouperProvisioningEntities, boolean includeDelete, boolean forCreate) translateGrouperToTargetGroups
(List<ProvisioningGroup> grouperProvisioningGroups, boolean includeDelete, boolean forCreate) translateGrouperToTargetMemberships
(List<ProvisioningMembership> grouperProvisioningMemberships, boolean includeDelete)
-
Constructor Details
-
GrouperProvisioningTranslator
public GrouperProvisioningTranslator()
-
-
Method Details
-
retrieveAllDependenciesForFullSync
public void retrieveAllDependenciesForFullSync() -
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
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
reference back up to the provisioner- Returns:
- the provisioner
-
isInGroup
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 checklistName
- admins, updaters, members, etcmemberField
- subjectId, subjectIdentifier0, subjectIdentifier1, subjectIdentifier2, email- Returns:
- set of values of subjects in the subject source of the provisioner
-
isHasPrivilege
list name can be admins, updaters, readers, etc- Parameters:
groupName
-listName
- admins, updaters, members, etcmemberId
-- Returns:
- true if has privilege
-
initGroupGroupMemberships
- Parameters:
groupIdFieldIdsInput
-
-
initGroupNameToGroupId
-
initGroupNameToGroupIdFromGroupIds
-
initGroupsMembershipsOrCache
public void initGroupsMembershipsOrCache() -
initGroupUserMemberships
- Parameters:
groupIdFieldIdsInput
-forGroups
-
-
setGrouperProvisioner
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
-
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
get the matching and search ids for a target group (could be grouperTargetGroup or targetProvisioningGroup)- Parameters:
targetGroups
-
-
idTargetEntities
-
massageToString
-
idTargetMemberships
-
runScript
-
runScriptStatic
-
runExpression
-
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()
-