[prev in list] [next in list] [prev in thread] [next in thread]
List: lon-capa-cvs
Subject: [LON-CAPA-cvs] cvs: loncom /auth migrateuser.pm /interface domainprefs.pm
From: raeburn <raeburn () source ! lon-capa ! org>
Date: 2014-10-06 0:48:44
Message-ID: cvsraeburn1412556524 () cvsserver
[Download RAW message or body]
This is a MIME encoded message
raeburn Mon Oct 6 00:48:44 2014 EDT
Modified files:
/loncom/interface domainprefs.pm
/loncom/auth migrateuser.pm
Log:
Bug 6675 (IP change detected in session migration).
- Additional option for both SSO user and non-SSO users
- Session hosted (after re-authentication) on a specified server selected
from servers belonging to domain's "internet domain".
["raeburn-20141006004844.txt" (text/plain)]
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.253 loncom/interface/domainprefs.pm:1.254
--- loncom/interface/domainprefs.pm:1.253 Sun Oct 5 13:34:01 2014
+++ loncom/interface/domainprefs.pm Mon Oct 6 00:48:39 2014
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.253 2014/10/05 13:34:01 raeburn Exp $
+# $Id: domainprefs.pm,v 1.254 2014/10/06 00:48:39 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -3806,7 +3806,7 @@
my @rulenames;
my %ruletitles = &offloadtype_text();
if (($type eq '_LC_ipchangesso') || ($type eq '_LC_ipchange')) {
- @rulenames = ('balancer','offloadedto');
+ @rulenames = ('balancer','offloadedto','specific');
} else {
@rulenames = ('default','homeserver');
if ($type eq '_LC_external') {
@@ -3868,8 +3868,13 @@
'<input type="radio" \
name="loadbalancing_rules_'.$balnum.'_'.$type.
'" id="loadbalancing_rules_'.$balnum.'_'.$type.'_'.$i.'" \
value="'.
$rule.'" \
onclick="balanceruleChange('."this.form,'$balnum','$type'".
- ')"'.$checked.' /> '.$ruletitles{$rulenames[$i]}.
- '</label>'.$extra.'</span><br />'."\n";
+ ')"'.$checked.' /> ';
+ if (($rulenames[$i] eq 'specific') && ($type =~ /^_LC_ipchange/)) {
+ $output .= $ruletitles{'particular'};
+ } else {
+ $output .= $ruletitles{$rulenames[$i]};
+ }
+ $output .= '</label>'.$extra.'</span><br />'."\n";
}
$output .= '</div></td></tr>'."\n";
return $output;
@@ -3884,6 +3889,7 @@
'none' => 'No offload',
'balancer' => 'Session hosted on Load Balancer, after \
re-authentication',
'offloadedto' => 'Session hosted on offload server, after \
re-authentication', + 'particular' => 'Session hosted (after re-auth) \
on server:', );
return %ruletitles;
}
@@ -10847,9 +10853,8 @@
if ($rule eq '') {
$balancetext = $ruletitles{'default'};
} elsif (($rule eq 'homeserver') || ($rule \
eq 'externalbalancer') ||
- ($rule eq 'balancer') || ($rule eq \
'offloadedto')) {
- $balancetext = $ruletitles{$rule};
- if (($rule eq 'balancer') || ($rule eq \
'offloadedto')) { + ($type eq \
'_LC_ipchange') || ($type eq '_LC_ipchangesso')) { + \
if (($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) {
foreach my $sparetype (@sparestypes) \
{
if \
(ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) \
eq 'ARRAY') {
map { $toupdate{$_} = 1; } \
(@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}}); @@ -10868,6 \
+10873,17 @@ }
}
}
+ if (($rule eq 'balancer') || ($rule \
eq 'offloadedto')) { + \
$balancetext = $ruletitles{$rule}; + \
} else { + my $receiver = \
$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type}; + \
$balancetext = $ruletitles{'particular'}.' '.$receiver; + \
if ($receiver) { + \
$toupdate{$receiver}; + }
+ }
+ } else {
+ $balancetext = $ruletitles{$rule};
}
} else {
$balancetext = &mt('offload to \
[_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type});
Index: loncom/auth/migrateuser.pm
diff -u loncom/auth/migrateuser.pm:1.22 loncom/auth/migrateuser.pm:1.23
--- loncom/auth/migrateuser.pm:1.22 Sun Oct 5 13:49:11 2014
+++ loncom/auth/migrateuser.pm Mon Oct 6 00:48:44 2014
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Starts a user off based of an existing token.
#
-# $Id: migrateuser.pm,v 1.22 2014/10/05 13:49:11 raeburn Exp $
+# $Id: migrateuser.pm,v 1.23 2014/10/06 00:48:44 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -114,36 +114,58 @@
my $url;
my $lonhost= $r->dir_config('lonHostID');
my $switchto = $lonhost;
- if ($rule_in_effect eq 'balancer') {
+ if ($rule_in_effect ne 'offloadedto') {
my $hosthere;
- if ($dataref->{'role'}) {
- my ($adom,$aname);
- if ($dataref->{'role'} =~ m{^au\./($match_domain)/$}) {
- $adom = $1;
- $aname = $dataref->{'username'};
- } elsif ($dataref->{'role'} =~ \
m{^(?:ca|aa)\./($match_domain)/($match_username)$}) {
- $adom = $1;
- $aname = $2;
- }
- if ($adom ne '' && $aname ne '') {
- my $ahome = &Apache::lonnet::homeserver($aname,$adom);
- unless ($ahome eq 'no_host') {
- my @ids=&Apache::lonnet::current_machine_ids();
- if ($ahome && grep(/^\Q$ahome\E$/,@ids)) {
- $hosthere = 1;
+ my @ids=&Apache::lonnet::current_machine_ids();
+ unless ($rule_in_effect eq 'balancer') {
+ if (grep(/^\Q$rule_in_effect\E$/,@ids)) {
+ $hosthere = 1;
+ }
+ }
+ unless ($hosthere) {
+ if ($dataref->{'role'}) {
+ my ($adom,$aname);
+ if ($dataref->{'role'} =~ m{^au\./($match_domain)/$}) {
+ $adom = $1;
+ $aname = $dataref->{'username'};
+ } elsif ($dataref->{'role'} =~ \
m{^(?:ca|aa)\./($match_domain)/($match_username)$}) { + $adom \
= $1; + $aname = $2;
+ }
+ if ($adom ne '' && $aname ne '') {
+ my $ahome = &Apache::lonnet::homeserver($aname,$adom);
+ unless ($ahome eq 'no_host') {
+ if ($ahome && grep(/^\Q$ahome\E$/,@ids)) {
+ $hosthere = 1;
+ }
}
}
}
}
- unless ($hosthere) {
- my $hostname = &Apache::lonnet::hostname($dataref->{'server'});
+ unless ($hosthere) {
+ my $hostname;
+ if ($rule_in_effect eq 'balancer') {
+ $hostname = &Apache::lonnet::hostname($dataref->{'server'});
+ if ($hostname) {
+ $switchto = $dataref->{'server'};
+ }
+ } else {
+ $hostname = &Apache::lonnet::hostname($rule_in_effect);
+ if ($hostname) {
+ $switchto = $rule_in_effect;
+ }
+ }
if ($hostname) {
- $switchto = $dataref->{'server'};
my $protocol = $Apache::lonnet::protocol{$switchto};
$protocol = 'http' if ($protocol ne 'https');
$url = $protocol.'://'.$hostname;
- $message .= '<br />'.
- &mt('As a result, your LON-CAPA session is being \
redirected to the server where you originally logged in.'); + if \
($rule_in_effect eq 'balancer') { + $message .= '<br />'.
+ &mt('As a result, your LON-CAPA session is being \
redirected to the server where you originally logged in.'); + } \
else { + $message .= '<br />'.
+ &mt('As a result, your LON-CAPA session is being \
redirected.'); + }
}
}
}
_______________________________________________
LON-CAPA-cvs mailing list
LON-CAPA-cvs@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic