[LON-CAPA-cvs] cvs: loncom /interface lonexttool.pm

raeburn raeburn at source.lon-capa.org
Sat Mar 15 13:28:14 EDT 2025


raeburn		Sat Mar 15 17:28:14 2025 EDT

  Modified files:              
    /loncom/interface	lonexttool.pm 
  Log:
  - Bug 6754. Wrap URI in launch_presentation_return_url when not in iframe. 
  
  
Index: loncom/interface/lonexttool.pm
diff -u loncom/interface/lonexttool.pm:1.26 loncom/interface/lonexttool.pm:1.27
--- loncom/interface/lonexttool.pm:1.26	Sat Mar 15 01:03:33 2025
+++ loncom/interface/lonexttool.pm	Sat Mar 15 17:28:14 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Launch External Tool Provider (LTI)
 #
-# $Id: lonexttool.pm,v 1.26 2025/03/15 01:03:33 raeburn Exp $
+# $Id: lonexttool.pm,v 1.27 2025/03/15 17:28:14 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -228,7 +228,7 @@
         }
         my $submittext = &mt('Launch [_1]',$toolhash{'title'});
         if (($toolhash{'url'} ne '') && ($launchok)) {
-            my %lti = &lti_params($r,$cnum,$cdom,$idx,$submittext,\%toolhash);
+            my %lti = &lti_params($r,$cnum,$cdom,$marker,$exttool,$idx,$submittext,\%toolhash);
             my $url = $toolhash{'url'};
             if ($toolhash{'crsappend'} ne '') {
                 $url .= $toolhash{'crsappend'};
@@ -246,7 +246,7 @@
 }
 
 sub lti_params {
-    my ($r,$cnum,$cdom,$idx,$submittext,$toolsref) = @_;
+    my ($r,$cnum,$cdom,$marker,$exttool,$idx,$submittext,$toolsref) = @_;
     my ($version,$context_type,$msgtype,$toolname,$passback,$roster,$locale,
         $crslabel,$crstitle,$gradesecret,$rostersecret,%fields,%rolesmap,
         %display,%custom, at userlangs,$incdom,$returnurl,$backtourl);
@@ -324,6 +324,7 @@
     }
     my ($title,$digest_symb,$digest_suppurl,$resource_link_id);
     my ($symb) = &Apache::lonnet::whichuser();
+    my $uri = "/adm/$cdom/$cnum/$marker/$exttool";
     if ($symb) {
         $digest_symb = &Encode::decode('UTF-8',$symb);
         $digest_symb = &Digest::SHA::sha1_hex($digest_symb);
@@ -336,8 +337,8 @@
                 $title = $res->compTitle();
             }
         }
-    } elsif ($env{'httpref.'.$env{'request.noversionuri'}} eq '/adm/coursedoc') {
-        $digest_suppurl = &Encode::decode('UTF-8',$env{'request.noversionuri'});
+    } elsif ($env{'httpref.'.$uri} eq '/adm/coursedoc') {
+        $digest_suppurl = &Encode::decode('UTF-8',$uri);
         $digest_suppurl = &Digest::SHA::sha1_hex($digest_suppurl);
         $resource_link_id = $digest_suppurl;
     }
@@ -489,14 +490,14 @@
                     $return_url = $mapurl;
                 }
                 $return_url .= '?navmap=1';
-            } elsif ($env{'httpref.'.$env{'request.noversionuri'}} eq '/adm/coursedoc') {
+            } elsif ($env{'httpref.'.$uri} eq '/adm/coursedoc') {
                 $return_url = '/adm/supplemental';
             } else {
                 $return_url = '/adm/navmaps';
             }
             $ltiparams{'launch_presentation_return_url'} = $location.$return_url;
         } else {
-            my $uri = $env{'request.noversionuri'};
+            $uri = '/adm/wrapper'.$uri;
             if ($env{'request.enc'}) {
                 $uri = &Apache::lonenc::encrypted($uri);
             }




More information about the LON-CAPA-cvs mailing list