setUser($user) ->setUserIdentity($ltiCallbackData['user_identity']); switch ($ltiCallbackData['action']) { case 'enroll_user': $publication = Publication::find($ltiCallbackData['publication_id']); $userManager->enroll($publication, $ltiCallbackData['local_roles'], $ltiCallbackData['registration_id']); break; case 'deeplink_callback': $userManager ->setRegistrationId($ltiCallbackData['registration_id']) ->syncUserIdentityMapping(UserIdentityMappingContext::DeepLink->value); break; } } private static function isValidEventData(array $eventData): bool { if (empty($_SESSION['callbacks'][$eventData['callback_id']])) { return false; } $ltiCallbackData = $_SESSION['callbacks'][$eventData['callback_id']]; if ( $ltiCallbackData['context'] !== 'lti' || $ltiCallbackData['expires_at'] < time() ) { return false; } return true; } }