Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions src/Util/LTI13.php
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,8 @@ public static function sendLineItemResult($user_id, $grade, $scoreMaximum, $comm
if ( is_array($debug_log) ) $debug_log[] = $headers;
if ( is_array($debug_log) ) $debug_log[] = $grade_call;

self::setUserAgentCurl($ch); // Set the User-Agent header

$line_item = curl_exec($ch);
if ( $line_item === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -537,6 +539,8 @@ public static function loadNRPS($membership_url, $access_token, &$debug_log=fals
if ( is_array($debug_log) ) $debug_log[] = $membership_url;
if ( is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$membership = curl_exec($ch);
if ( $membership === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -637,6 +641,8 @@ public static function loadGroups($context_groups_url, $access_token, &$debug_lo
if ( is_array($debug_log) ) $debug_log[] = $context_groups_url;
if ( is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$lti_groups = curl_exec($ch);
if ( $lti_groups === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -727,6 +733,8 @@ public static function loadLineItems($lineitems_url, $access_token, &$debug_log=
if (is_array($debug_log) ) $debug_log[] = 'Line Items URL: '.$lineitems_url;
if (is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$lineitems = curl_exec($ch);
if ( $lineitems === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -779,6 +787,8 @@ public static function loadLineItem($lineitem_url, $access_token, &$debug_log=fa
if (is_array($debug_log) ) $debug_log[] = 'Line Items URL: '.$lineitem_url;
if (is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$lineitem = curl_exec($ch);
if ( $lineitem === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -836,6 +846,8 @@ public static function loadResults($lineitem_url, $access_token, &$debug_log=fal
if (is_array($debug_log) ) $debug_log[] = 'Line Items URL: '.$actual_url;
if (is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$results = curl_exec($ch);
if ( $results === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -897,6 +909,8 @@ public static function deleteLineItem($lineitem_url, $access_token, &$debug_log=
if (is_array($debug_log) ) $debug_log[] = 'Line Item URL: '.$lineitem_url;
if (is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$response = curl_exec($ch);
if ( $response === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -969,6 +983,8 @@ public static function createLineItem($lineitems_url, $access_token, $lineitem,
if (is_array($debug_log) ) $debug_log[] = 'Line Items URL: '.$lineitems_url;
if (is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$line_item = curl_exec($ch);
if ( $line_item === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -1038,6 +1054,8 @@ public static function updateLineItem($lineitem_url, $access_token, $lineitem, &
if (is_array($debug_log) ) $debug_log[] = 'Line Item URL: '.$lineitem_url;
if (is_array($debug_log) ) $debug_log[] = $headers;

self::setUserAgentCurl($ch); // Set the User-Agent header

$line_item = curl_exec($ch);
if ( $line_item === false ) return self::handle_curl_error($ch, $debug_log);

Expand Down Expand Up @@ -1121,6 +1139,8 @@ public static function get_access_token($scope, $subject, $lti13_token_url, $lti
if ( is_array($debug_log) ) $debug_log[] = "Post Data:";
if ( is_array($debug_log) ) $debug_log[] = $query;

self::setUserAgentCurl($ch); // Set the User-Agent header

$token_str = curl_exec($ch);
if ( $token_str === false ) {
self::handle_curl_error($ch, $debug_log);
Expand Down Expand Up @@ -1478,4 +1498,19 @@ public static function extractKeyFromKeySet($keyset_str, $kid)
return null;
}

public static function setUserAgentCurl($ch)
{
global $CFG;

// Construct a robust default User-Agent
$default_agent = 'Tsugi/' .
(defined('TSUGI_VERSION') ? TSUGI_VERSION : 'dev') .
' (' . (isset($CFG->wwwroot) ? $CFG->wwwroot : 'https://www.tsugi.org') . ')' .
' PHP/' . phpversion();

// Allow overrides via extension mechanism
$user_agent = $CFG->getExtension('user_agent', $default_agent);

curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
}
}