--- loncom/auth/lonauth.pm 2022/06/18 02:10:18 1.174
+++ loncom/auth/lonauth.pm 2022/06/30 21:04:13 1.176
@@ -1,7 +1,7 @@
# The LearningOnline Network
# User Authentication Module
#
-# $Id: lonauth.pm,v 1.174 2022/06/18 02:10:18 raeburn Exp $
+# $Id: lonauth.pm,v 1.176 2022/06/30 21:04:13 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -179,11 +179,21 @@ sub success {
$destination .= 'source=login';
}
+ my $brcrum = [{'href' => '',
+ 'text' => 'Successful Login'},];
+ my $args = {'no_inline_link' => 1,
+ 'bread_crumbs' => $brcrum,};
if (($env{'request.deeplink.login'} eq $lowerurl) &&
(($env{'request.linkprot'}) || ($env{'request.linkkey'} ne ''))) {
my %info;
if ($env{'request.linkprot'}) {
$info{'linkprot'} = $env{'request.linkprot'};
+ foreach my $item ('linkprotuser','linkprotexit') {
+ if ($form->{$item}) {
+ $info{$item} = $form->{$item};
+ }
+ }
+ $args = {'only_body' => 1,};
} elsif ($env{'request.linkkey'} ne '') {
$info{'linkkey'} = $env{'request.linkkey'};
}
@@ -200,9 +210,6 @@ sub success {
$windowname .= 'lti';
}
my $windowinfo = Apache::lonhtmlcommon::scripttag('self.name="'.$windowname.'";');
- my $brcrum = [{'href' => '',
- 'text' => 'Successful Login'},];
- my $args = {'bread_crumbs' => $brcrum,};
unless ((defined($form->{role})) || (defined($form->{symb}))) {
my $update=$env{'user.update.time'};
if (!$update) {
@@ -276,18 +283,19 @@ ENDJS
$args->{'redirect'} = [0,$destination];
$start_page=&Apache::loncommon::start_page('Successful Login',
$js,$args);
-
- my %lt=&Apache::lonlocal::texthash(
- 'wel' => 'Welcome',
- 'pro' => 'Login problems?',
+ unless ($env{'request.linkprot'}) {
+ my %lt=&Apache::lonlocal::texthash(
+ 'wel' => 'Welcome',
+ 'pro' => 'Login problems?',
);
- $pagebody = "
$lt{'wel'}
\n".
- &mt('Welcome to the Learning[_1]Online[_2] Network with CAPA. Please wait while your session is being set up.','','');
- my $loginhelp = &loginhelpdisplay($domain);
- if ($loginhelp) {
- $pagebody .= ''.$lt{'pro'}.'
';
+ $pagebody = "$lt{'wel'}
\n".
+ &mt('Welcome to the Learning[_1]Online[_2] Network with CAPA. Please wait while your session is being set up.','','');
+ my $loginhelp = &loginhelpdisplay($domain);
+ if ($loginhelp) {
+ $pagebody .= ''.$lt{'pro'}.'
';
+ }
}
- }
+ }
$end_page = &Apache::loncommon::end_page();
$r->print(< $form->{'linkprot'},
);
- if ($form->{linkprotuser} ne '') {
- $info{'linkprotuser'} = $form->{linkprotuser};
+ foreach my $item ('linkprotuser','linkprotexit') {
+ if ($form->{$item} ne '') {
+ $info{$item} = $form->{$item};
+ }
}
my $ltoken = &Apache::lonnet::tmpput(\%info,
$r->dir_config('lonHostID'),'retry');
@@ -809,6 +819,11 @@ sub handler {
}
if ($form{'linkprot'}) {
$env{'request.linkprot'} = $form{'linkprot'};
+ foreach my $item ('linkprotuser','linkprotexit') {
+ if ($form{$item}) {
+ $env{'request.'.$item} = $form{$item};
+ }
+ }
} elsif ($form{'linkkey'} ne '') {
$env{'request.linkkey'} = $form{'linkkey'};
}
@@ -840,6 +855,11 @@ sub handler {
}
if ($form{'linkprot'}) {
$env{'request.linkprot'} = $form{'linkprot'};
+ foreach my $item ('linkprotuser','linkprotexit') {
+ if ($form{$item}) {
+ $env{'request.'.$item} = $form{$item};
+ }
+ }
} elsif ($form{'linkkey'} ne '') {
$env{'request.linkkey'} = $form{'linkkey'};
}
@@ -923,6 +943,9 @@ sub handler {
} else {
$extra_env = {'request.linkprot' => $form{'linkprot'}};
}
+ if ($form{'linkprotexit'}) {
+ $extra_env->{'request.linkprotexit'} = $form{'linkprotexit'};
+ }
} elsif ($form{'linkkey'} ne '') {
if (ref($extra_env) eq 'HASH') {
%{$extra_env} = ( %{$extra_env}, 'request.linkkey' => $form{'linkkey'} );
@@ -1011,7 +1034,7 @@ sub set_retry_token {
my ($form,$lonhost,$querystr) = @_;
if (ref($form) eq 'HASH') {
my ($firsturl,$token,$extras,@names);
- @names = ('role','symb','linkprotuser','linkprot','linkkey','iptoken');
+ @names = ('role','symb','linkprotuser','linkprotexit','linkprot','linkkey','iptoken');
foreach my $name (@names) {
if ($form->{$name} ne '') {
$extras .= '&'.$name.'='.&escape($form->{$name});