version 1.1509, 2023/05/22 15:09:15
|
version 1.1510, 2023/05/22 21:10:55
|
Line 415 sub remote_devalidate_cache {
|
Line 415 sub remote_devalidate_cache {
|
return $response; |
return $response; |
} |
} |
|
|
|
sub sign_lti { |
|
my ($cdom,$cnum,$crstool,$url,$idx,$keynum,$post,$paramsref,$inforef) = @_; |
|
my $chome; |
|
if (&domain($cdom) ne '') { |
|
if ($crstool) { |
|
$chome = &homeserver($cnum,$cdom); |
|
} else { |
|
$chome = &domain($cdom,'primary'); |
|
} |
|
} |
|
if ($cdom && $chome && ($chome ne 'no_host')) { |
|
if ((ref($paramsref) eq 'HASH') && |
|
(ref($inforef) eq 'HASH')) { |
|
my $rep; |
|
if (grep { $_ eq $chome } ¤t_machine_ids()) { |
|
# domain information is hosted on this machine |
|
$rep = |
|
&LONCAPA::Lond::sign_params($cdom,$cnum,$crstool,$url, |
|
$idx,$keynum,$post, |
|
$perlvar{'lonVersion'}, |
|
$paramsref,$inforef); |
|
if ($rep ne '') { |
|
return ('ok',$rep); |
|
} |
|
} else { |
|
my ($escurl,$params,$info); |
|
$escurl = &escape($url); |
|
if (ref($paramsref) eq 'HASH') { |
|
$params = &freeze_escape($paramsref); |
|
} |
|
if (ref($inforef) eq 'HASH') { |
|
$info = &freeze_escape($inforef); |
|
} |
|
$rep=&reply("encrypt:signlti:$cdom:$cnum:$crstool:$escurl:$idx:$keynum:$post:$params:$info",$chome); |
|
} |
|
if (($rep eq '') || ($rep =~ /^con_lost|error|no_such_host|unknown_cmd/i)) { |
|
return (); |
|
} else { |
|
my %returnhash; |
|
foreach my $item (split(/\&/,$rep)) { |
|
my ($name,$value)=split(/\=/,$item); |
|
$returnhash{&unescape($name)}=&thaw_unescape($value); |
|
} |
|
return('ok',\%returnhash); |
|
} |
|
} else { |
|
return (); |
|
} |
|
} else { |
|
return (); |
|
&logthis("sign_lti failed - no homeserver and/or domain ($cdom) ($chome)"); |
|
} |
|
} |
|
|
# -------------------------------------------------- Non-critical communication |
# -------------------------------------------------- Non-critical communication |
sub subreply { |
sub subreply { |
my ($cmd,$server)=@_; |
my ($cmd,$server)=@_; |
Line 2700 sub get_domain_defaults {
|
Line 2754 sub get_domain_defaults {
|
'coursecategories','ssl','autoenroll', |
'coursecategories','ssl','autoenroll', |
'trust','helpsettings','wafproxy', |
'trust','helpsettings','wafproxy', |
'ltisec','toolsec','domexttool', |
'ltisec','toolsec','domexttool', |
'exttool',],$domain); |
'exttool'],$domain); |
my @coursetypes = ('official','unofficial','community','textbook','placement'); |
my @coursetypes = ('official','unofficial','community','textbook','placement'); |
if (ref($domconfig{'defaults'}) eq 'HASH') { |
if (ref($domconfig{'defaults'}) eq 'HASH') { |
$domdefaults{'lang_def'} = $domconfig{'defaults'}{'lang_def'}; |
$domdefaults{'lang_def'} = $domconfig{'defaults'}{'lang_def'}; |
Line 12538 sub get_domain_lti {
|
Line 12592 sub get_domain_lti {
|
} |
} |
|
|
sub get_course_lti { |
sub get_course_lti { |
my ($cnum,$cdom) = @_; |
my ($cnum,$cdom,$context) = @_; |
|
my ($name,$cachename,%lti); |
|
if ($context eq 'consumer') { |
|
$name = 'ltitools'; |
|
$cachename = 'courseltitools'; |
|
} elsif ($context eq 'provider') { |
|
$name = 'lti'; |
|
$cachename = 'courselti'; |
|
} else { |
|
return %lti; |
|
} |
my $hashid=$cdom.'_'.$cnum; |
my $hashid=$cdom.'_'.$cnum; |
my %courselti; |
my ($result,$cached)=&is_cached_new($cachename,$hashid); |
my ($result,$cached)=&is_cached_new('courselti',$hashid); |
|
if (defined($cached)) { |
if (defined($cached)) { |
if (ref($result) eq 'HASH') { |
if (ref($result) eq 'HASH') { |
%courselti = %{$result}; |
%lti = %{$result}; |
} |
} |
} else { |
} else { |
%courselti = &dump('lti',$cdom,$cnum,undef,undef,undef,1); |
%lti = &dump($name,$cdom,$cnum,undef,undef,undef,1); |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&do_cache_new('courselti',$hashid,\%courselti,$cachetime); |
&do_cache_new($cachename,$hashid,\%lti,$cachetime); |
} |
} |
return %courselti; |
return %lti; |
} |
} |
|
|
sub courselti_itemid { |
sub courselti_itemid { |