You are here

function lti_tool_provider_memberships_lti_tool_provider_launch_alter in LTI Tool Provider 7

Implements hook_lti_tool_provider_launch().

File

lti_tool_provider_memberships/lti_tool_provider_memberships.module, line 910
lti_tool_provider_memberships hook implementations and support functions.

Code

function lti_tool_provider_memberships_lti_tool_provider_launch_alter(&$launch_info, &$account) {

  // If user does not have a membership, create one
  global $user;
  $query = new EntityFieldQuery();
  $result = $query
    ->entityCondition('entity_type', 'lti_tool_provider_memberships')
    ->propertyCondition('lti_tool_provider_memberships_context_id', $launch_info['context_id'])
    ->propertyCondition('lti_tool_provider_memberships_user_id', $launch_info['user_id'])
    ->execute();
  if (empty($result)) {
    $entity = entity_get_controller('lti_tool_provider_memberships')
      ->create();
    $entity->lti_tool_provider_memberships_context_id = $launch_info['context_id'];
    $entity->lti_tool_provider_memberships_uid = isset($account->uid) ? $account->uid : NULL;
    $entity->lti_tool_provider_memberships_user_id = $launch_info['user_id'];
    $entity->lti_tool_provider_memberships_role = $launch_info['roles'];
    $entity->lti_tool_provider_memberships_person_name_full = $launch_info['lis_person_name_full'];
    lti_tool_provider_memberships_save($entity);
  }
}