function lti_tool_provider_memberships_add_user_to_membership_groups in LTI Tool Provider 7
Add a user to membership groups.
Groups are created if necessary and roles are assigned.
Parameters
integer $uid: The users uid.
array $membership_groups: An array of memberships groups.
string $roles: The list of LTI roles.
2 calls to lti_tool_provider_memberships_add_user_to_membership_groups()
- lti_tool_provider_memberships_add_member in lti_tool_provider_memberships/
lti_tool_provider_memberships.module - Add a membership for a new user.
- lti_tool_provider_memberships_alter_member in lti_tool_provider_memberships/
lti_tool_provider_memberships.module - Alter membership for a member.
File
- lti_tool_provider_memberships/
lti_tool_provider_memberships.module, line 1140 - lti_tool_provider_memberships hook implementations and support functions.
Code
function lti_tool_provider_memberships_add_user_to_membership_groups($uid, $membership_groups, $lti_roles) {
list($subgroup_entity, $subgroup_bundle) = explode(':', variable_get('lti_tool_provider_memberships_subgroup_mapping_bundle'));
if ($subgroup_entity != 'none') {
// Get users current groups.
$users_groups = og_get_entity_groups('user', $uid);
// Loop through the membership groups.
foreach ($membership_groups as $membership_group) {
// Find or create the subgroup that matches the membership_group.
$subgroup_eid = lti_tool_provider_memberships_get_subgroup($subgroup_entity, $subgroup_bundle, $membership_group);
// Add the user to the group.
if (!array_key_exists($subgroup_entity, $users_groups) || !in_array($subgroup_eid, $users_groups[$subgroup_entity])) {
og_group($subgroup_entity, $subgroup_eid, array(
'entity_type' => 'user',
'entity' => $uid,
'field_name' => FALSE,
'state' => OG_STATE_ACTIVE,
));
}
// Grant the group roles.
$subgroup_roles = lti_tool_provider_memberships_search_roles($lti_roles);
foreach ($subgroup_roles as $lti_role => $subgroup_role) {
og_role_grant($subgroup_entity, $subgroup_eid, $uid, $subgroup_role);
}
}
}
}