You are here

function lti_tool_provider_assign_global_roles_to_user in LTI Tool Provider 7

Map a user to a drupal Global role based on his/her role in the LTI context.

Parameters

string $lti_roles: The string representing the lti_roles.

integer $uid: The id of the user to assign the role.

3 calls to lti_tool_provider_assign_global_roles_to_user()
lti_tool_provider_launch in ./lti_tool_provider.operations.inc
LTI launch.
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.module, line 264
lti_tool_provider hook implementations and support functions.

Code

function lti_tool_provider_assign_global_roles_to_user($lti_roles, $uid) {
  $select_roles = user_roles(TRUE, NULL);
  $global_role_array = variable_get('lti_tool_provider_global_role_array');
  $roles = explode(',', $lti_roles);
  foreach ($roles as $key => $raw_role) {
    $tmp = explode(':', $raw_role);
    $tmp2 = explode('/', end($tmp));
    $lti_role = end($tmp2);

    // Check if the mapped global role exists.
    if (isset($global_role_array[$lti_role]) && isset($select_roles[$global_role_array[$lti_role]])) {
      user_multiple_role_edit(array(
        $uid,
      ), 'add_role', $global_role_array[$lti_role]);
    }
  }
}