version 1.205, 2022/06/30 21:04:13
|
version 1.207, 2022/09/17 23:38:50
|
Line 315 sub sso_login {
|
Line 315 sub sso_login {
|
my %form; |
my %form; |
if ($query) { |
if ($query) { |
my @items = ('role','symb','iptoken','origurl','ttoken', |
my @items = ('role','symb','iptoken','origurl','ttoken', |
'ltoken','linkkey','logtoken','sso'); |
'ltoken','linkkey','logtoken','sso','lcssowin'); |
&Apache::loncommon::get_unprocessed_cgi($query,\@items); |
&Apache::loncommon::get_unprocessed_cgi($query,\@items); |
foreach my $item (@items) { |
foreach my $item (@items) { |
if (defined($env{'form.'.$item})) { |
if (defined($env{'form.'.$item})) { |
Line 394 sub sso_login {
|
Line 394 sub sso_login {
|
if ($firsturl =~ m{^/tiny/$match_domain/\w+$}) { |
if ($firsturl =~ m{^/tiny/$match_domain/\w+$}) { |
$form{'origurl'} = $firsturl; |
$form{'origurl'} = $firsturl; |
$deeplinkurl = $firsturl; |
$deeplinkurl = $firsturl; |
|
} elsif ($firsturl eq '/adm/email') { |
|
$form{'origurl'} = $firsturl; |
} |
} |
if ($form{'linkprot'}) { |
if ($form{'linkprot'}) { |
$linkprot = $form{'linkprot'}; |
$linkprot = $form{'linkprot'}; |
Line 465 sub sso_login {
|
Line 467 sub sso_login {
|
linkprotuser => $linkprotuser, |
linkprotuser => $linkprotuser, |
linkprotexit => $linkprotexit, |
linkprotexit => $linkprotexit, |
); |
); |
|
if ($env{'form.lcssowin'}) { |
|
$data{'lcssowin'} = $env{'form.lcssowin'}; |
|
} |
my $token = &Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'link'); |
my $token = &Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'link'); |
unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) || |
unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) || |
($token eq 'unknown_cmd') || ($token eq 'no_such_host')) { |
($token eq 'unknown_cmd') || ($token eq 'no_such_host')) { |
Line 537 sub sso_login {
|
Line 542 sub sso_login {
|
$env{'request.linkkey'} = $linkkey; |
$env{'request.linkkey'} = $linkkey; |
} |
} |
} |
} |
|
if (($r->uri eq '/adm/sso') && ($form{'origurl'} eq '/adm/email')) { |
|
if ($form{'display'} && ($env{'form.mailrecip'} eq $user.':'.$domain)) { |
|
$env{'request.display'} = $form{'display'}; |
|
$env{'request.mailrecip'} = $env{'form.mailrecip'}; |
|
} |
|
} |
$env{'request.sso.login'} = 1; |
$env{'request.sso.login'} = 1; |
if (defined($r->dir_config("lonSSOReloginServer"))) { |
if (defined($r->dir_config("lonSSOReloginServer"))) { |
$env{'request.sso.reloginserver'} = |
$env{'request.sso.reloginserver'} = |
Line 546 sub sso_login {
|
Line 557 sub sso_login {
|
if ($otherserver ne '') { |
if ($otherserver ne '') { |
$redirecturl .= '?otherserver='.$otherserver; |
$redirecturl .= '?otherserver='.$otherserver; |
} |
} |
|
if ($form{'lcssowin'}) { |
|
$redirecturl .= (($redirecturl=~/\?/)?'&':'?') . 'lcssowin=1'; |
|
} |
$r->internal_redirect($redirecturl); |
$r->internal_redirect($redirecturl); |
$r->set_handlers('PerlHandler'=> undef); |
$r->set_handlers('PerlHandler'=> undef); |
} else { |
} else { |
Line 558 sub sso_login {
|
Line 572 sub sso_login {
|
'server' => $r->dir_config('lonHostID'), |
'server' => $r->dir_config('lonHostID'), |
'sso.login' => 1 |
'sso.login' => 1 |
); |
); |
foreach my $item ('role','symb','iptoken','origurl') { |
foreach my $item ('role','symb','iptoken','origurl','lcssowin') { |
if (exists($form{$item})) { |
if (exists($form{$item})) { |
$info{$item} = $form{$item}; |
$info{$item} = $form{$item}; |
} elsif ($sessiondata{$item} ne '') { |
} elsif ($sessiondata{$item} ne '') { |
Line 588 sub sso_login {
|
Line 602 sub sso_login {
|
$info{'linkkey'} = $linkkey; |
$info{'linkkey'} = $linkkey; |
} |
} |
} |
} |
|
if (($r->uri eq '/adm/sso') && ($form{'origurl'} eq '/adm/email')) { |
|
if ($form{'display'} && ($form{'mailrecip'} eq $user.':'.$domain)) { |
|
$info{'display'} = &escape($form{'display'}); |
|
$info{'mailrecip'} = &escape($form{'mailrecip'}); |
|
} |
|
} |
if ($r->dir_config("ssodirecturl") == 1) { |
if ($r->dir_config("ssodirecturl") == 1) { |
$info{'origurl'} = $r->uri; |
$info{'origurl'} = $r->uri; |
} |
} |
Line 624 sub sso_login {
|
Line 644 sub sso_login {
|
$r->subprocess_env->set('SSOUserDomain' => $domain); |
$r->subprocess_env->set('SSOUserDomain' => $domain); |
if (grep(/^sso$/,@cancreate)) { |
if (grep(/^sso$/,@cancreate)) { |
#FIXME - need to preserve origurl, role and symb, or linkprot or linkkey for use after account |
#FIXME - need to preserve origurl, role and symb, or linkprot or linkkey for use after account |
# creation |
# creation. If lcssowin is 1, createaccount needs to close pop-up and display in main window. |
$r->set_handlers('PerlHandler'=> [\&Apache::createaccount::handler]); |
$r->set_handlers('PerlHandler'=> [\&Apache::createaccount::handler]); |
$r->handler('perl-script'); |
$r->handler('perl-script'); |
} else { |
} else { |