version 1.146, 2011/08/01 19:46:49
|
version 1.149, 2011/08/09 00:54:43
|
Line 362 sub handler {
|
Line 362 sub handler {
|
col2 => 'Rules'}], |
col2 => 'Rules'}], |
}, |
}, |
); |
); |
my %servers = &dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
if (keys(%servers) > 1) { |
if (keys(%servers) > 1) { |
$prefs{'login'} = { text => 'Log-in page options', |
$prefs{'login'} = { text => 'Log-in page options', |
help => 'Domain_Configuration_Login_Page', |
help => 'Domain_Configuration_Login_Page', |
Line 707 sub print_login {
|
Line 707 sub print_login {
|
my %choices = &login_choices(); |
my %choices = &login_choices(); |
|
|
if ($position eq 'top') { |
if ($position eq 'top') { |
my %servers = &dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my $choice = $choices{'disallowlogin'}; |
my $choice = $choices{'disallowlogin'}; |
$css_class = ' class="LC_odd_row"'; |
$css_class = ' class="LC_odd_row"'; |
$datatable .= '<tr'.$css_class.'><td>'.$choice.'</td>'. |
$datatable .= '<tr'.$css_class.'><td>'.$choice.'</td>'. |
Line 2307 sub print_usersessions {
|
Line 2307 sub print_usersessions {
|
|
|
my @alldoms = &Apache::lonnet::all_domains(); |
my @alldoms = &Apache::lonnet::all_domains(); |
my %uniques = &Apache::lonnet::get_unique_servers(\@alldoms); |
my %uniques = &Apache::lonnet::get_unique_servers(\@alldoms); |
my %servers = &dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my $itemcount = 1; |
my $itemcount = 1; |
if ($position eq 'top') { |
if ($position eq 'top') { |
if (keys(%uniques) > 1) { |
if (keys(%uniques) > 1) { |
Line 3990 sub modify_login {
|
Line 3990 sub modify_login {
|
\%loginhash); |
\%loginhash); |
} |
} |
|
|
my %servers = &dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my @loginvia_attribs = ('serverpath','custompath','exempt'); |
my @loginvia_attribs = ('serverpath','custompath','exempt'); |
if (keys(%servers) > 1) { |
if (keys(%servers) > 1) { |
foreach my $lonhost (keys(%servers)) { |
foreach my $lonhost (keys(%servers)) { |
Line 7062 sub modify_usersessions {
|
Line 7062 sub modify_usersessions {
|
|
|
my @alldoms = &Apache::lonnet::all_domains(); |
my @alldoms = &Apache::lonnet::all_domains(); |
my %uniques = &Apache::lonnet::get_unique_servers(\@alldoms); |
my %uniques = &Apache::lonnet::get_unique_servers(\@alldoms); |
my %servers = &dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %spareid = ¤t_offloads_to($dom,$domconfig{'usersessions'},\%servers); |
my %spareid = ¤t_offloads_to($dom,$domconfig{'usersessions'},\%servers); |
my $savespares; |
my $savespares; |
|
|
Line 7124 sub modify_usersessions {
|
Line 7124 sub modify_usersessions {
|
} |
} |
} |
} |
|
|
if (keys(%changes) > 0) { |
my $nochgmsg = &mt('No changes made to settings for user session hosting/offloading.'); |
|
if ((keys(%changes) > 0) || ($savespares)) { |
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash, |
$dom); |
$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
Line 7138 sub modify_usersessions {
|
Line 7139 sub modify_usersessions {
|
} |
} |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
my %lt = &usersession_titles(); |
if (keys(%changes) > 0) { |
$resulttext = &mt('Changes made:').'<ul>'; |
my %lt = &usersession_titles(); |
foreach my $prefix (@prefixes) { |
$resulttext = &mt('Changes made:').'<ul>'; |
if (ref($changes{$prefix}) eq 'HASH') { |
foreach my $prefix (@prefixes) { |
$resulttext .= '<li>'.$lt{$prefix}.'<ul>'; |
if (ref($changes{$prefix}) eq 'HASH') { |
if ($prefix eq 'spares') { |
$resulttext .= '<li>'.$lt{$prefix}.'<ul>'; |
if (ref($changes{$prefix}) eq 'HASH') { |
if ($prefix eq 'spares') { |
foreach my $lonhost (sort(keys(%{$changes{$prefix}}))) { |
if (ref($changes{$prefix}) eq 'HASH') { |
$resulttext .= '<li><b>'.$lonhost.'</b> '; |
foreach my $lonhost (sort(keys(%{$changes{$prefix}}))) { |
if (ref($changes{$prefix}{$lonhost}) eq 'HASH') { |
$resulttext .= '<li><b>'.$lonhost.'</b> '; |
foreach my $type (@{$types{$prefix}}) { |
my $lonhostdom = &Apache::lonnet::host_domain($lonhost); |
if ($changes{$prefix}{$lonhost}{$type}) { |
&Apache::lonnet::remote_devalidate_cache($lonhost,'spares',$lonhostdom); |
my $offloadto = &mt('None'); |
if (ref($changes{$prefix}{$lonhost}) eq 'HASH') { |
if (ref($defaultshash{'usersessions'}{'spares'}{$lonhost}{$type}) eq 'ARRAY') { |
foreach my $type (@{$types{$prefix}}) { |
if (@{$defaultshash{'usersessions'}{'spares'}{$lonhost}{$type}} > 0) { |
if ($changes{$prefix}{$lonhost}{$type}) { |
$offloadto = join(', ',@{$defaultshash{'usersessions'}{'spares'}{$lonhost}{$type}}); |
my $offloadto = &mt('None'); |
|
if (ref($defaultshash{'usersessions'}{'spares'}{$lonhost}{$type}) eq 'ARRAY') { |
|
if (@{$defaultshash{'usersessions'}{'spares'}{$lonhost}{$type}} > 0) { |
|
$offloadto = join(', ',@{$defaultshash{'usersessions'}{'spares'}{$lonhost}{$type}}); |
|
} |
} |
} |
|
$resulttext .= &mt('[_1] set to: [_2].','<i>'.$lt{$type}.'</i>',$offloadto).(' 'x3); |
} |
} |
$resulttext .= &mt('[_1] set to: [_2]','<i>'.$lt{'type'}.'</i>',$offloadto).(' 'x3); |
|
} |
} |
} |
} |
|
$resulttext .= '</li>'; |
} |
} |
$resulttext .= '</li>'; |
|
} |
} |
} |
} else { |
} else { |
foreach my $type (@{$types{$prefix}}) { |
foreach my $type (@{$types{$prefix}}) { |
if (defined($changes{$prefix}{$type})) { |
if (defined($changes{$prefix}{$type})) { |
my $newvalue; |
my $newvalue; |
if (ref($defaultshash{'usersessions'}) eq 'HASH') { |
if (ref($defaultshash{'usersessions'}) eq 'HASH') { |
if (ref($defaultshash{'usersessions'}{$prefix})) { |
if (ref($defaultshash{'usersessions'}{$prefix})) { |
if ($type eq 'version') { |
if ($type eq 'version') { |
$newvalue = $defaultshash{'usersessions'}{$prefix}{$type}; |
$newvalue = $defaultshash{'usersessions'}{$prefix}{$type}; |
} elsif (ref($defaultshash{'usersessions'}{$prefix}{$type}) eq 'ARRAY') { |
} elsif (ref($defaultshash{'usersessions'}{$prefix}{$type}) eq 'ARRAY') { |
if (@{$defaultshash{'usersessions'}{$prefix}{$type}} > 0) { |
if (@{$defaultshash{'usersessions'}{$prefix}{$type}} > 0) { |
$newvalue = join(', ',@{$defaultshash{'usersessions'}{$prefix}{$type}}); |
$newvalue = join(', ',@{$defaultshash{'usersessions'}{$prefix}{$type}}); |
} |
} |
} |
} |
} |
} |
} |
} |
if ($newvalue eq '') { |
if ($newvalue eq '') { |
if ($type eq 'version') { |
if ($type eq 'version') { |
$resulttext .= '<li>'.&mt('[_1] set to: off',$lt{$type}).'</li>'; |
$resulttext .= '<li>'.&mt('[_1] set to: off',$lt{$type}).'</li>'; |
} else { |
|
$resulttext .= '<li>'.&mt('[_1] set to: none',$lt{$type}).'</li>'; |
|
} |
} else { |
} else { |
$resulttext .= '<li>'.&mt('[_1] set to: none',$lt{$type}).'</li>'; |
if ($type eq 'version') { |
} |
$newvalue .= ' '.&mt('(or later)'); |
} else { |
} |
if ($type eq 'version') { |
$resulttext .= '<li>'.&mt('[_1] set to: [_2].',$lt{$type},$newvalue).'</li>'; |
$newvalue .= ' '.&mt('(or later)'); |
|
} |
} |
$resulttext .= '<li>'.&mt('[_1] set to: [_2].',$lt{$type},$newvalue).'</li>'; |
|
} |
} |
} |
} |
} |
} |
|
$resulttext .= '</ul>'; |
} |
} |
$resulttext .= '</ul>'; |
|
} |
} |
|
$resulttext .= '</ul>'; |
|
} else { |
|
$resulttext = $nochgmsg; |
} |
} |
$resulttext .= '</ul>'; |
|
} else { |
} else { |
$resulttext = '<span class="LC_error">'. |
$resulttext = '<span class="LC_error">'. |
&mt('An error occurred: [_1]',$putresult).'</span>'; |
&mt('An error occurred: [_1]',$putresult).'</span>'; |
} |
} |
} else { |
} else { |
$resulttext = &mt('No changes made to settings for user session hosting/offloading.'); |
$resulttext = $nochgmsg; |
} |
} |
return $resulttext; |
return $resulttext; |
} |
} |
Line 7247 sub recurse_cat_deletes {
|
Line 7254 sub recurse_cat_deletes {
|
return; |
return; |
} |
} |
|
|
sub dom_servers { |
|
my ($dom) = @_; |
|
my (%uniqservers,%servers); |
|
my $primaryserver = &Apache::lonnet::hostname(&Apache::lonnet::domain($dom,'primary')); |
|
my @machinedoms = &Apache::lonnet::machine_domains($primaryserver); |
|
foreach my $mdom (@machinedoms) { |
|
my %currservers = %servers; |
|
my %server = &Apache::lonnet::get_servers($mdom); |
|
%servers = (%currservers,%server); |
|
} |
|
my %by_hostname; |
|
foreach my $id (keys(%servers)) { |
|
push(@{$by_hostname{$servers{$id}}},$id); |
|
} |
|
foreach my $hostname (sort(keys(%by_hostname))) { |
|
if (@{$by_hostname{$hostname}} > 1) { |
|
my $match = 0; |
|
foreach my $id (@{$by_hostname{$hostname}}) { |
|
if (&Apache::lonnet::host_domain($id) eq $dom) { |
|
$uniqservers{$id} = $hostname; |
|
$match = 1; |
|
} |
|
} |
|
unless ($match) { |
|
$uniqservers{$by_hostname{$hostname}[0]} = $hostname; |
|
} |
|
} else { |
|
$uniqservers{$by_hostname{$hostname}[0]} = $hostname; |
|
} |
|
} |
|
return %uniqservers; |
|
} |
|
|
|
sub get_active_dcs { |
sub get_active_dcs { |
my ($dom) = @_; |
my ($dom) = @_; |
my %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc']); |
my %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc']); |