--- loncom/interface/lonnavdisplay.pm	2021/03/04 01:38:00	1.22.4.10
+++ loncom/interface/lonnavdisplay.pm	2021/02/18 14:48:02	1.38
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Navigate Maps Display Handler
 #
-# $Id: lonnavdisplay.pm,v 1.22.4.10 2021/03/04 01:38:00 raeburn Exp $
+# $Id: lonnavdisplay.pm,v 1.38 2021/02/18 14:48:02 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -39,6 +39,7 @@ use Apache::lonnet;
 use Apache::lonlocal;
 use Apache::londocs();
 use Apache::lonuserstate;
+use LONCAPA::ltiutils;
 
 sub handler {
     my $r = shift;
@@ -54,8 +55,8 @@ sub real_handler {
         return OK;
     }
 
-    # Check for critical messages and redirect if present.
-    my ($redirect,$url) = &Apache::loncommon::critical_redirect(300);
+    # Check for critical messages and redirect if present.  
+    my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'contents');
     if ($redirect) {
         &Apache::loncommon::content_type($r,'text/html');
         $r->header_out(Location => $url);
@@ -111,6 +112,34 @@ ENDCLOSE
         }
     }
 
+    my $course_type = &Apache::loncommon::course_type();
+    if (($course_type eq 'Placement') && (!$env{'request.role.adv'})) { 
+        my $furl = &Apache::lonpageflip::first_accessible_resource();
+        if ($result eq 'update') {
+            &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
+            $r->print($closure.&Apache::loncommon::end_page());
+            return OK;
+        } else {
+            &Apache::loncommon::content_type($r,'text/html');
+            $r->header_out(Location => $furl);
+            return REDIRECT;
+        }
+    }
+
+    if ($env{'request.lti.login'}) {
+        if ($env{'request.lti.uri'} ne '') {
+            my $cid = $env{'request.course.id'};
+            my $cnum = $env{'course.'.$cid.'.num'};
+            my $cdom = $env{'course.'.$cid.'.domain'};
+            my ($scope,$url) = &LONCAPA::ltiutils::lti_provider_scope($env{'request.lti.uri'},$cdom,$cnum);
+            if (($scope eq 'map') || ($scope eq 'resource')) {
+                &Apache::loncommon::content_type($r,'text/html');
+                $r->header_out(Location => $url);
+                return REDIRECT;
+            }
+        }
+    }
+
     # Create the nav map
     my $navmap = Apache::lonnavmaps::navmap->new();
 
@@ -368,6 +397,7 @@ sub startContentScreen {
         $r->print('<li '.(($mode eq 'supplemental')?' class="active"':'').'><a href="/adm/supplemental"><b>'.&mt('Supplemental Content').'</b></a></li>');
     }
     $r->print('<li'.(($mode eq 'coursesearch')?' class="active"':'').'><a href="/adm/searchcourse"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Search').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n");
+    $r->print('<li'.(($mode eq 'courseindex')?' class="active"':'').'><a href="/adm/indexcourse"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Index').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>'."\n");
     $r->print("\n".'</ul>'."\n");
     $r->print('<div class="LC_Box" style="clear:both;margin:0;"><div id="maincoursedoc" style="margin:0 0;padding:0 0;"><div class="LC_ContentBox" id="mainCourseDocuments" style="display: block;">');
 }