version 1.28, 2018/04/14 01:50:43
|
version 1.34, 2018/07/04 16:58:19
|
Line 88 sub lti_check {
|
Line 88 sub lti_check {
|
if ($data->{'lti.selfenrollrole'}) { |
if ($data->{'lti.selfenrollrole'}) { |
$lti_env{'request.lti.selfenrollrole'} = $data->{'lti.selfenrollrole'}; |
$lti_env{'request.lti.selfenrollrole'} = $data->{'lti.selfenrollrole'}; |
} |
} |
|
if ($data->{'lti.uri'}) { |
|
$lti_env{'request.lti.uri'} = $data->{'lti.uri'}; |
|
} |
|
if ($data->{'lti.target'}) { |
|
$lti_env{'request.lti.target'} = $data->{'lti.target'}; |
|
} |
|
if ($data->{'lti.sourcecrs'}) { |
|
$lti_env{'request.lti.sourcecrs'} = $data->{'lti.sourcecrs'}; |
|
} |
} |
} |
if ($data->{'lti.passbackid'}) { |
if ($data->{'lti.passbackid'}) { |
$lti_env{'request.lti.passbackid'} = $data->{'lti.passbackid'}; |
$lti_env{'request.lti.passbackid'} = $data->{'lti.passbackid'}; |
Line 249 sub ip_changed {
|
Line 258 sub ip_changed {
|
|
|
sub logout { |
sub logout { |
my ($r,$handle,$data,$lti_env) = @_; |
my ($r,$handle,$data,$lti_env) = @_; |
unlink($handle); |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
if ($env{'user.linkedenv'} ne '') { |
if (unlink("$lonidsdir/$handle.id")) { |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
if (($env{'user.linkedenv'} =~ /^[a-f0-9]+_linked$/) && |
if ((-l $env{'user.linkedenv'}) && |
(-l "$lonidsdir/$env{'user.linkedenv'}.id") && |
(readlink($env{'user.linkedenv'}) eq "$lonidsdir/$handle.id")) { |
(readlink("$lonidsdir/$env{'user.linkedenv'}.id") eq "$lonidsdir/$handle.id")) { |
unlink($env{'user.linkedenv'}); |
unlink("$lonidsdir/$env{'user.linkedenv'}.id"); |
} |
} |
} |
} |
my %temp=('logout' => time); |
my %temp=('logout' => time); |
Line 266 sub logout {
|
Line 275 sub logout {
|
|
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
|
|
#expire the cookie |
#expire the cookies |
my $c = new CGI::Cookie(-name => 'lonID', |
my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); |
-value => '', |
foreach my $name (keys(%cookies)) { |
-expires => '-10y',); |
next unless ($name =~ /^lon(|S|Link|Pub)ID$/); |
$r->headers_out->add('Set-cookie' => $c); |
my $c = new CGI::Cookie(-name => $name, |
if ($env{'user.linkedenv'}) { |
-value => '', |
my $linked = new CGI::Cookie(-name => 'lonLinkID', |
-expires => '-10y',); |
-value => '', |
$r->headers_out->add('Set-cookie' => $c); |
-expires => '-10y',); |
|
$r->headers_out->add('Set-cookie' => $linked); |
|
} |
} |
my $lonhost = $r->dir_config('lonHostID'); |
|
my (%info,%user_info,%lti_info); |
my (%info,%user_info,%lti_info); |
if (ref($lti_env) eq 'HASH') { |
if (ref($lti_env) eq 'HASH') { |
%lti_info = %{$lti_env}; |
%lti_info = %{$lti_env}; |
Line 388 sub handler {
|
Line 394 sub handler {
|
$form{'lti.reqcrs'} = $data{'lti.reqcrs'}; |
$form{'lti.reqcrs'} = $data{'lti.reqcrs'}; |
$form{'lti.reqrole'} = $data{'lti.reqrole'}; |
$form{'lti.reqrole'} = $data{'lti.reqrole'}; |
$form{'lti.sourcecrs'} = $data{'lti.sourcecrs'}; |
$form{'lti.sourcecrs'} = $data{'lti.sourcecrs'}; |
|
$form{'lti.uri'} = $data{'lti.uri'}; |
if ($data{'lti.passbackid'}) { |
if ($data{'lti.passbackid'}) { |
$form{'lti.passbackid'} = $data{'lti.passbackid'}; |
$form{'lti.passbackid'} = $data{'lti.passbackid'}; |
} |
} |
Line 400 sub handler {
|
Line 407 sub handler {
|
if ($data{'lti.rosterurl'}) { |
if ($data{'lti.rosterurl'}) { |
$form{'lti.rosterurl'} = $data{'lti.rosterurl'}; |
$form{'lti.rosterurl'} = $data{'lti.rosterurl'}; |
} |
} |
|
if ($data{'lti.target'}) { |
|
$form{'lti.target'} = $data{'lti.target'}; |
|
} |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
&Apache::ltiauth::lti_reqcrs($r,$data{'domain'},\%form,$data{'username'},$data{'domain'}); |
&Apache::ltiauth::lti_reqcrs($r,$data{'domain'},\%form,$data{'username'},$data{'domain'}); |
Line 410 sub handler {
|
Line 420 sub handler {
|
delete($lti_env->{'selfenrollrole'}); |
delete($lti_env->{'selfenrollrole'}); |
} |
} |
if ($data{'lti.selfenrollrole'}) { |
if ($data{'lti.selfenrollrole'}) { |
if (&Apache::ltiauth::lti_enroll($data{'username'},data{'domain'}, |
if (&Apache::ltiauth::lti_enroll($data{'username'},$data{'domain'}, |
$data{'lti.selfenrollrole'}) eq 'ok') { |
$data{'lti.selfenrollrole'}) eq 'ok') { |
my $url = '/adm/roles?selectrole=1&'. |
my $url = '/adm/roles?selectrole=1&'. |
&escape($data{'lti.selfenrollrole'}).'=1'; |
&escape($data{'lti.selfenrollrole'}).'=1'; |
Line 470 sub handler {
|
Line 480 sub handler {
|
return OK; |
return OK; |
} |
} |
|
|
my $next_url='/adm/roles?selectrole=1&'.&escape($data{'role'}).'=1'; |
my $next_url='/adm/roles?selectrole=1&'.&escape($data{'role'}).'=1'; |
if ($data{'origurl'} ne '') { |
if ($data{'origurl'} ne '') { |
$next_url .= '&orgurl='.&escape($data{'origurl'}); |
$next_url .= '&orgurl='.&escape($data{'origurl'}); |
|
if ($data{'lti.login'}) { |
|
if (($data{'origurl'} =~ m{/default_\d+\.sequence$}) || |
|
($data{'origurl'} =~ m{^/res/.+\.sequence$})) { |
|
$next_url .= '&navmap=1'; |
|
} |
|
} |
} |
} |
&Apache::lonauth::success($r,$data{'username'},$data{'domain'},$home, |
&Apache::lonauth::success($r,$data{'username'},$data{'domain'},$home, |
$next_url,$extra_env,\%form); |
$next_url,$extra_env,\%form); |