[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
raeburn
raeburn at source.lon-capa.org
Wed Aug 4 17:06:34 EDT 2021
raeburn Wed Aug 4 21:06:34 2021 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
- Bug 6907 Content in a course can be set to be deep-link only.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1462 loncom/lonnet/perl/lonnet.pm:1.1463
--- loncom/lonnet/perl/lonnet.pm:1.1462 Sun Aug 1 19:28:11 2021
+++ loncom/lonnet/perl/lonnet.pm Wed Aug 4 21:06:33 2021
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.1462 2021/08/01 19:28:11 raeburn Exp $
+# $Id: lonnet.pm,v 1.1463 2021/08/04 21:06:33 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -7133,7 +7133,7 @@
my $rep;
if ($encrypt) {
$rep=&reply("encrypt:edump:$udomain:$uname:$namespace:$regexp:$range",$uhome);
- } else {
+ } else {
$rep=&reply("dump:$udomain:$uname:$namespace:$regexp:$range",$uhome);
}
my @pairs=split(/\&/,$rep);
@@ -9065,17 +9065,34 @@
if ($deeplink eq '') {
$allow = 1;
} else {
- my ($listed,$scope,$access) = split(/,/,$deeplink);
- if ($access eq 'any') {
+ my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink);
+ if ($state ne 'only') {
$allow = 1;
- } elsif ($deeplink_symb) {
- if ($access eq 'only') {
+ } else {
+ my $check_deeplink_entry;
+ if ($protect ne 'none') {
+ my ($acctype,$item) = split(/:/,$protect);
+ if (($acctype eq 'ltic') && ($env{'user.linkprotector'})) {
+ if (grep(/^\Q$item\Ec$/,split(/,/,$env{'user.linkprotector'}))) {
+ $check_deeplink_entry = 1
+ }
+ } elsif (($acctype eq 'ltid') && ($env{'user.linkprotector'})) {
+ if (grep(/^\Q$item\Ed$/,split(/,/,$env{'user.linkprotector'}))) {
+ $check_deeplink_entry = 1;
+ }
+ } elsif (($acctype eq 'key') && ($env{'user.deeplinkkey'})) {
+ if (grep(/^\Q$item\E$/,split(/,/,$env{'user.deeplinkkey'}))) {
+ $check_deeplink_entry = 1;
+ }
+ }
+ }
+ if (($protect eq 'none') || ($check_deeplink_entry)) {
if ($scope eq 'res') {
if ($symb eq $deeplink_symb) {
$allow = 1;
}
} elsif (($scope eq 'map') || ($scope eq 'rec')) {
- my ($map_from_symb,$map_from_login);
+ my ($map_from_symb,$map_from_login);
$map_from_symb = &deversion((&decode_symb($symb))[0]);
if ($deeplink_symb =~ /\.(page|sequence)$/) {
$map_from_login = &deversion((&decode_symb($deeplink_symb))[2]);
@@ -9093,23 +9110,6 @@
}
}
}
- } else {
- my ($acctype,$item) = split(/:/,$access);
- if (($acctype eq 'lti') && ($env{'user.linkprotector'})) {
- if (grep(/^\Q$item\E$/,split(/,/,$env{'user.linkprotector'}))) {
- my %tinyurls = &get('tiny',[$symb],$cdom,$cnum);
- if (grep(/\Q$tinyurls{$symb}\E$/,split(/,/,$env{'user.linkproturis'}))) {
- $allow = 1;
- }
- }
- } elsif (($acctype eq 'key') && ($env{'user.deeplinkkey'})) {
- if (grep(/^\Q$item\E$/,split(/,/,$env{'user.deeplinkkey'}))) {
- my %tinyurls = &get('tiny',[$symb],$cdom,$cnum);
- if (grep(/\Q$tinyurls{$symb}\E$/,split(/,/,$env{'user.keyedlinkuri'}))) {
- $allow = 1;
- }
- }
- }
}
}
}
@@ -12215,6 +12215,23 @@
return %lti;
}
+sub get_course_lti {
+ my ($cnum,$cdom) = @_;
+ my $hashid=$cdom.'_'.$cnum;
+ my %courselti;
+ my ($result,$cached)=&is_cached_new('courselti',$hashid);
+ if (defined($cached)) {
+ if (ref($result) eq 'HASH') {
+ %courselti = %{$result};
+ }
+ } else {
+ %courselti = &dump('lti',$cdom,$cnum,undef,undef,undef,1);
+ my $cachetime = 24*60*60;
+ &do_cache_new('courselti',$hashid,\%courselti,$cachetime);
+ }
+ return %courselti;
+}
+
sub get_numsuppfiles {
my ($cnum,$cdom,$ignorecache)=@_;
my $hashid=$cnum.':'.$cdom;
More information about the LON-CAPA-cvs
mailing list