--- loncom/interface/domainprefs.pm 2008/12/17 21:50:29 1.78
+++ loncom/interface/domainprefs.pm 2008/12/26 22:24:43 1.84
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.78 2008/12/17 21:50:29 raeburn Exp $
+# $Id: domainprefs.pm,v 1.84 2008/12/26 22:24:43 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -39,7 +39,7 @@ use Apache::lonlocal;
use Apache::lonmsg();
use LONCAPA qw(:DEFAULT :match);
use LONCAPA::Enrollment;
-use LONCAPA::loncgi();
+use LONCAPA::lonauthcgi();
use File::Copy;
use Locale::Language;
use DateTime::TimeZone;
@@ -1317,9 +1317,11 @@ sub print_quotas {
'
';
foreach my $item (@usertools) {
my $checked = 'checked="checked" ';
- if (ref($settings->{$item}) eq 'HASH') {
- if ($settings->{$item}->{'_LC_adv'} == 0) {
- $checked = '';
+ if (ref($settings) eq 'HASH') {
+ if (ref($settings->{$item}) eq 'HASH') {
+ if ($settings->{$item}->{'_LC_adv'} == 0) {
+ $checked = '';
+ }
}
}
$datatable .= ' ';
}
$datatable .= '('.&mt('overrides affiliation').
- ')';
+ ') | ';
$$rowtotal += $typecount;
return $datatable;
}
@@ -2371,7 +2373,7 @@ sub print_serverstatuses {
}
}
}
- my $titles= &LONCAPA::loncgi::serverstatus_titles();
+ my $titles= &LONCAPA::lonauthcgi::serverstatus_titles();
my $rownum = 0;
my $css_class;
foreach my $type (@pages) {
@@ -3610,10 +3612,16 @@ sub modify_quotas {
}
$resulttext .= '';
}
+ my %newenv;
foreach my $item (@usertools) {
if (ref($changes{$item}) eq 'HASH') {
- my $hashid = $env{'user.name'}.':'.$env{'user.domain'};
- &Apache::lonnet::devalidate_cache_new('usertools.'.$item,$hashid);
+ my $newacc =
+ &Apache::lonnet::usertools_access($env{'user.name'},
+ $env{'user.domain'},
+ $item,'reload');
+ if ($env{'environment.availabletools.'.$item} ne $newacc) {
+ $newenv{'environment.availabletools.'.$item} = $newacc;
+ }
$resulttext .= ''.$titles{$item}.'';
foreach my $type (@{$types},'default','_LC_adv') {
if ($changes{$item}{$type}) {
@@ -3634,6 +3642,9 @@ sub modify_quotas {
}
}
$resulttext .= '
';
+ if (keys(%newenv)) {
+ &Apache::lonnet::appenv(\%newenv);
+ }
} else {
$resulttext = &mt('No changes made to availability of home pages, blogs, portfolios or default quotas');
}
@@ -4966,58 +4977,57 @@ sub modify_serverstatuses {
my %serverstatushash = (
serverstatuses => \%newserverstatus,
);
- my $putresult = &Apache::lonnet::put_dom('configuration',\%serverstatushash,
- $dom);
my %changes;
foreach my $type (@pages) {
- if (ref($currserverstatus{$type}) eq 'HASH') {
- my @currnamed = split(/,/,$currserverstatus{$type}{'namedusers'});
- my @newusers = split(/,/,$newserverstatus{$type}{'namedusers'});
- foreach my $item (@currnamed) {
- if (!grep(/^\Q$item\E$/,@newusers)) {
- $changes{$type}{'namedusers'} = 1;
- last;
- }
- }
- foreach my $item (@newusers) {
- if (!grep(/^\Q$item\E$/,@currnamed)) {
- $changes{$type}{'namedusers'} = 1;
- last;
- }
- }
- my @currmachines = split(/,/,$currserverstatus{$type}{'machines'});
- my @newmachines = split(/,/,$newserverstatus{$type}{'machines'});
- foreach my $item (@currmachines) {
- if (!grep(/^\Q$item\E$/,@newmachines)) {
- $changes{$type}{'machines'} = 1;
- last;
+ foreach my $setting ('namedusers','machines') {
+ my (@current,@new);
+ if (ref($currserverstatus{$type}) eq 'HASH') {
+ if ($currserverstatus{$type}{$setting} ne '') {
+ @current = split(/,/,$currserverstatus{$type}{$setting});
}
}
- foreach my $item (@newmachines) {
- if (!grep(/^\Q$item\E$/,@currmachines)) {
- $changes{$type}{'machines'} = 1;
- last;
+ if ($newserverstatus{$type}{$setting} ne '') {
+ @new = split(/,/,$newserverstatus{$type}{$setting});
+ }
+ if (@current > 0) {
+ if (@new > 0) {
+ foreach my $item (@current) {
+ if (!grep(/^\Q$item\E$/,@new)) {
+ $changes{$type}{$setting} = 1;
+ last;
+ }
+ }
+ foreach my $item (@new) {
+ if (!grep(/^\Q$item\E$/,@current)) {
+ $changes{$type}{$setting} = 1;
+ last;
+ }
+ }
+ } else {
+ $changes{$type}{$setting} = 1;
}
+ } elsif (@new > 0) {
+ $changes{$type}{$setting} = 1;
}
-
}
}
if (keys(%changes) > 0) {
- my $titles= &LONCAPA::loncgi::serverstatus_titles();
+ my $titles= &LONCAPA::lonauthcgi::serverstatus_titles();
my $putresult = &Apache::lonnet::put_dom('configuration',
\%serverstatushash,$dom);
if ($putresult eq 'ok') {
$resulttext .= &mt('Changes made:').'';
foreach my $type (@pages) {
- if (defined($changes{$type})) {
+ if (ref($changes{$type}) eq 'HASH') {
$resulttext .= '- '.$titles->{$type}.'
';
- if (defined($changes{$type}{'namedusers'})) {
+ if ($changes{$type}{'namedusers'}) {
if ($newserverstatus{$type}{'namedusers'} eq '') {
$resulttext .= '- '.&mt("Access terminated for all specific (named) users").'
'."\n";
} else {
$resulttext .= '- '.&mt("Access available for the following specified users: ").$newserverstatus{$type}{'namedusers'}.'
'."\n";
}
- } elsif (defined($changes{$type}{'machines'})) {
+ }
+ if ($changes{$type}{'machines'}) {
if ($newserverstatus{$type}{'machines'} eq '') {
$resulttext .= '- '.&mt("Access terminated for all specific IP addresses").'
'."\n";
} else {