Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

Differences Between: [Versions 400 and 402] [Versions 401 and 402]

   1  <?php
   2  
   3  namespace Packback\Lti1p3\MessageValidators;
   4  
   5  use Packback\Lti1p3\LtiConstants;
   6  use Packback\Lti1p3\LtiException;
   7  
   8  class DeepLinkMessageValidator extends AbstractMessageValidator
   9  {
  10      public static function getMessageType(): string
  11      {
  12          return LtiConstants::MESSAGE_TYPE_DEEPLINK;
  13      }
  14  
  15      public static function validate(array $jwtBody): void
  16      {
  17          static::validateGenericMessage($jwtBody);
  18  
  19          if (empty($jwtBody[LtiConstants::DL_DEEP_LINK_SETTINGS])) {
  20              throw new LtiException('Missing Deep Linking Settings');
  21          }
  22          $deep_link_settings = $jwtBody[LtiConstants::DL_DEEP_LINK_SETTINGS];
  23          if (empty($deep_link_settings['deep_link_return_url'])) {
  24              throw new LtiException('Missing Deep Linking Return URL');
  25          }
  26          if (empty($deep_link_settings['accept_types']) || !in_array('ltiResourceLink', $deep_link_settings['accept_types'])) {
  27              throw new LtiException('Must support resource link placement types');
  28          }
  29          if (empty($deep_link_settings['accept_presentation_document_targets'])) {
  30              throw new LtiException('Must support a presentation type');
  31          }
  32      }
  33  }