version 1.76.2.2, 2008/12/17 22:13:22
|
version 1.88, 2009/02/10 18:01:40
|
Line 39 use Apache::lonlocal;
|
Line 39 use Apache::lonlocal;
|
use Apache::lonmsg(); |
use Apache::lonmsg(); |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA::Enrollment; |
use LONCAPA::Enrollment; |
use LONCAPA::loncgi(); |
use LONCAPA::lonauthcgi(); |
use File::Copy; |
use File::Copy; |
use Locale::Language; |
use Locale::Language; |
use DateTime::TimeZone; |
use DateTime::TimeZone; |
Line 74 sub handler {
|
Line 74 sub handler {
|
&Apache::lonnet::get_dom('configuration',['login','rolecolors', |
&Apache::lonnet::get_dom('configuration',['login','rolecolors', |
'quotas','autoenroll','autoupdate','directorysrch', |
'quotas','autoenroll','autoupdate','directorysrch', |
'usercreation','usermodification','contacts','defaults', |
'usercreation','usermodification','contacts','defaults', |
'scantron','coursecategories','serverstatuses'],$dom); |
'scantron','coursecategories','serverstatuses', |
|
'requestcourses'],$dom); |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
'autoupdate','directorysrch','contacts', |
'autoupdate','directorysrch','contacts', |
'usercreation','usermodification','scantron', |
'usercreation','usermodification','scantron', |
'coursecategories','serverstatuses'); |
'requestcourses','coursecategories','serverstatuses'); |
my %prefs = ( |
my %prefs = ( |
'rolecolors' => |
'rolecolors' => |
{ text => 'Default color schemes', |
{ text => 'Default color schemes', |
Line 107 sub handler {
|
Line 108 sub handler {
|
'quotas' => |
'quotas' => |
{ text => 'User blogs, home pages and portfolios', |
{ text => 'User blogs, home pages and portfolios', |
help => 'Domain_Configuration_Quotas', |
help => 'Domain_Configuration_Quotas', |
header => [{col1 => 'User type', |
header => [{col1 => 'User affiliation', |
col2 => 'Available tools', |
col2 => 'Available tools', |
col3 => 'Portfolio quota',}], |
col3 => 'Portfolio quota',}], |
}, |
}, |
Line 165 sub handler {
|
Line 166 sub handler {
|
col2 => '', |
col2 => '', |
}], |
}], |
}, |
}, |
|
'requestcourses' => |
|
{text => 'Request creation of courses', |
|
help => 'Domain_Configuration_Request_Courses', |
|
header => [{col1 => 'User affiliation', |
|
col2 => 'Requestable course types',}], |
|
}, |
'coursecategories' => |
'coursecategories' => |
{ text => 'Cataloging of courses', |
{ text => 'Cataloging of courses', |
help => 'Domain_Configuration_Cataloging_Courses', |
help => 'Domain_Configuration_Cataloging_Courses', |
Line 175 sub handler {
|
Line 182 sub handler {
|
}], |
}], |
}, |
}, |
'serverstatuses' => |
'serverstatuses' => |
{text => 'Access to Server Status Pages', |
{text => 'Access to server status pages', |
help => 'Domain_Configuration_Server_Status', |
help => 'Domain_Configuration_Server_Status', |
header => [{col1 => 'Status Page', |
header => [{col1 => 'Status Page', |
col2 => 'Other named users', |
col2 => 'Other named users', |
Line 363 sub process_changes {
|
Line 370 sub process_changes {
|
$output = &modify_rolecolors($r,$dom,$confname,$roles, |
$output = &modify_rolecolors($r,$dom,$confname,$roles, |
%domconfig); |
%domconfig); |
} elsif ($action eq 'quotas') { |
} elsif ($action eq 'quotas') { |
$output = &modify_quotas($dom,%domconfig); |
$output = &modify_quotas($dom,$action,%domconfig); |
} elsif ($action eq 'autoenroll') { |
} elsif ($action eq 'autoenroll') { |
$output = &modify_autoenroll($dom,%domconfig); |
$output = &modify_autoenroll($dom,%domconfig); |
} elsif ($action eq 'autoupdate') { |
} elsif ($action eq 'autoupdate') { |
Line 384 sub process_changes {
|
Line 391 sub process_changes {
|
$output = &modify_coursecategories($dom,%domconfig); |
$output = &modify_coursecategories($dom,%domconfig); |
} elsif ($action eq 'serverstatuses') { |
} elsif ($action eq 'serverstatuses') { |
$output = &modify_serverstatuses($dom,%domconfig); |
$output = &modify_serverstatuses($dom,%domconfig); |
|
} elsif ($action eq 'requestcourses') { |
|
$output = &modify_quotas($dom,$action,%domconfig); |
} |
} |
return $output; |
return $output; |
} |
} |
Line 544 sub print_config_box {
|
Line 553 sub print_config_box {
|
if ($action eq 'login') { |
if ($action eq 'login') { |
$output .= &print_login($dom,$confname,$phase,$settings,\$rowtotal); |
$output .= &print_login($dom,$confname,$phase,$settings,\$rowtotal); |
} elsif ($action eq 'quotas') { |
} elsif ($action eq 'quotas') { |
$output .= &print_quotas($dom,$settings,\$rowtotal); |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
} elsif ($action eq 'autoenroll') { |
} elsif ($action eq 'autoenroll') { |
$output .= &print_autoenroll($dom,$settings,\$rowtotal); |
$output .= &print_autoenroll($dom,$settings,\$rowtotal); |
} elsif ($action eq 'directorysrch') { |
} elsif ($action eq 'directorysrch') { |
Line 557 sub print_config_box {
|
Line 566 sub print_config_box {
|
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); |
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); |
} elsif ($action eq 'serverstatuses') { |
} elsif ($action eq 'serverstatuses') { |
$output .= &print_serverstatuses($dom,$settings,\$rowtotal); |
$output .= &print_serverstatuses($dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'requestcourses') { |
|
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
} |
} |
} |
} |
$output .= ' |
$output .= ' |
Line 817 sub login_choices {
|
Line 828 sub login_choices {
|
bgs => "Background colors", |
bgs => "Background colors", |
links => "Link colors", |
links => "Link colors", |
font => "Font color", |
font => "Font color", |
pgbg => "Page", |
pgbg => "Header", |
mainbg => "Main panel", |
mainbg => "Page", |
sidebg => "Side panel", |
sidebg => "Login box", |
link => "Link", |
link => "Link", |
alink => "Active link", |
alink => "Active link", |
vlink => "Visited link", |
vlink => "Visited link", |
Line 1236 ENDCOL
|
Line 1247 ENDCOL
|
} |
} |
|
|
sub print_quotas { |
sub print_quotas { |
my ($dom,$settings,$rowtotal) = @_; |
my ($dom,$settings,$rowtotal,$action) = @_; |
my $datatable; |
my $context; |
|
if ($action eq 'quotas') { |
|
$context = 'tools'; |
|
} else { |
|
$context = $action; |
|
} |
|
my ($datatable,$defaultquota,@usertools); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my $typecount = 0; |
my $typecount = 0; |
my $css_class; |
my $css_class; |
my @usertools = ('aboutme','blog','portfolio'); |
if ($context eq 'requestcourses') { |
|
@usertools = ('official','unofficial'); |
|
} else { |
|
@usertools = ('aboutme','blog','portfolio'); |
|
} |
my %titles = &tool_titles(); |
my %titles = &tool_titles(); |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
foreach my $type (@{$types}) { |
foreach my $type (@{$types}) { |
my $currdefquota; |
my $currdefquota; |
if (ref($settings) eq 'HASH') { |
unless ($context eq 'requestcourses') { |
if (ref($settings->{defaultquota}) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
$currdefquota = $settings->{defaultquota}->{$type}; |
if (ref($settings->{defaultquota}) eq 'HASH') { |
} else { |
$currdefquota = $settings->{defaultquota}->{$type}; |
$currdefquota = $settings->{$type}; |
} else { |
|
$currdefquota = $settings->{$type}; |
|
} |
} |
} |
} |
} |
if (defined($usertypes->{$type})) { |
if (defined($usertypes->{$type})) { |
Line 1260 sub print_quotas {
|
Line 1283 sub print_quotas {
|
'<td>'.$usertypes->{$type}.'</td>'. |
'<td>'.$usertypes->{$type}.'</td>'. |
'<td class="LC_left_item">'; |
'<td class="LC_left_item">'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
my $checked = 'checked="checked" '; |
my $checked; |
|
unless ($context eq 'requestcourses') { |
|
$checked = 'checked="checked" '; |
|
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if ($settings->{$item}->{$type} == 0) { |
if ($settings->{$item}->{$type} == 0) { |
$checked = ''; |
$checked = ''; |
|
} elsif ($settings->{$item}->{$type} == 1) { |
|
$checked = 'checked="checked" '; |
} |
} |
} |
} |
} |
} |
$datatable .= '<span class="LC_nobreak"><label>'. |
$datatable .= '<span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="tools_'.$item. |
'<input type="checkbox" name="'.$context.'_'.$item. |
'" value="'.$type.'" '.$checked.'/>'.$titles{$item}. |
'" value="'.$type.'" '.$checked.'/>'.$titles{$item}. |
'</label></span> '; |
'</label></span> '; |
} |
} |
$datatable .= '</td><td class="LC_right_item"><span class="LC_nobreak">'. |
$datatable .= '</td>'; |
|
unless ($context eq 'requestcourses') { |
|
$datatable .= |
|
'<td class="LC_right_item"><span class="LC_nobreak">'. |
'<input type="text" name="quota_'.$type. |
'<input type="text" name="quota_'.$type. |
'" value="'.$currdefquota. |
'" value="'.$currdefquota. |
'" size="5" /> Mb</span></td></tr>'; |
'" size="5" /> Mb</span></td>'; |
|
} |
|
$datatable .= '</tr>'; |
} |
} |
} |
} |
} |
} |
my $defaultquota = '20'; |
unless ($context eq 'requestcourses') { |
if (ref($settings) eq 'HASH') { |
$defaultquota = '20'; |
if (ref($settings->{'defaultquota'}) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
$defaultquota = $settings->{'defaultquota'}->{'default'}; |
if (ref($settings->{'defaultquota'}) eq 'HASH') { |
} elsif (defined($settings->{'default'})) { |
$defaultquota = $settings->{'defaultquota'}->{'default'}; |
$defaultquota = $settings->{'default'}; |
} elsif (defined($settings->{'default'})) { |
|
$defaultquota = $settings->{'default'}; |
|
} |
} |
} |
} |
} |
$typecount ++; |
$typecount ++; |
Line 1294 sub print_quotas {
|
Line 1329 sub print_quotas {
|
'<td>'.$othertitle.'</td>'. |
'<td>'.$othertitle.'</td>'. |
'<td class="LC_left_item">'; |
'<td class="LC_left_item">'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
my $checked = 'checked="checked" '; |
my $checked; |
|
unless ($context eq 'requestcourses') { |
|
$checked = 'checked="checked" '; |
|
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if ($settings->{$item}->{'default'} == 0) { |
if ($settings->{$item}->{'default'} == 0) { |
$checked = ''; |
$checked = ''; |
|
} elsif ($settings->{$item}->{'default'} == 1) { |
|
$checked = 'checked="checked" '; |
} |
} |
} |
} |
} |
} |
$datatable .= '<span class="LC_nobreak"><label>'. |
$datatable .= '<span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="tools_'.$item. |
'<input type="checkbox" name="'.$context.'_'.$item. |
'" value="default" '.$checked.'/>'.$titles{$item}. |
'" value="default" '.$checked.'/>'.$titles{$item}. |
'</label></span> '; |
'</label></span> '; |
} |
} |
$datatable .= '</td><td class="LC_right_item"><span class="LC_nobreak">'. |
$datatable .= '</td>'; |
'<input type="text" name="defaultquota" value="'. |
unless ($context eq 'requestcourses') { |
$defaultquota.'" size="5" /> Mb</span></td></tr>'; |
$datatable .= '<td class="LC_right_item"><span class="LC_nobreak">'. |
|
'<input type="text" name="defaultquota" value="'. |
|
$defaultquota.'" size="5" /> Mb</span></td>'; |
|
} |
|
$datatable .= '</tr>'; |
$typecount ++; |
$typecount ++; |
$css_class = $typecount%2?' class="LC_odd_row"':''; |
$css_class = $typecount%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'>'. |
$datatable .= '<tr'.$css_class.'>'. |
'<td><br/>'.&mt('LON-CAPA Advanced Users').'</td>'. |
'<td><br/>'.&mt('LON-CAPA Advanced Users').'</td>'. |
'<td class="LC_left_item" colspan="2"><br />'; |
'<td class="LC_left_item" colspan="2"><br />'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
my $checked = 'checked="checked" '; |
my $checked; |
|
unless ($context eq 'requestcourses') { |
|
$checked = 'checked="checked" '; |
|
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if ($settings->{$item}->{'_LC_adv'} == 0) { |
if ($settings->{$item}->{'_LC_adv'} == 0) { |
$checked = ''; |
$checked = ''; |
|
} elsif ($settings->{$item}->{'_LC_adv'} == 1) { |
|
$checked = 'checked="checked" '; |
} |
} |
} |
} |
} |
} |
$datatable .= '<span class="LC_nobreak"><label>'. |
$datatable .= '<span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="tools_'.$item. |
'<input type="checkbox" name="'.$context.'_'.$item. |
'" value="_LC_adv" '.$checked.'/>'.$titles{$item}. |
'" value="_LC_adv" '.$checked.'/>'.$titles{$item}. |
'</label></span> '; |
'</label></span> '; |
} |
} |
$datatable .= '('.&mt('overrides affiliation').')</td></tr>'; |
$datatable .= '<span class="LC_nobreak">('.&mt('overrides affiliation'). |
|
')</span></td></tr>'; |
$$rowtotal += $typecount; |
$$rowtotal += $typecount; |
return $datatable; |
return $datatable; |
} |
} |
Line 1652 sub contact_titles {
|
Line 1702 sub contact_titles {
|
|
|
sub tool_titles { |
sub tool_titles { |
my %titles = &Apache::lonlocal::texthash ( |
my %titles = &Apache::lonlocal::texthash ( |
aboutme => 'Personal Home Page', |
aboutme => 'Personal Home Page', |
blog => 'Blog', |
blog => 'Blog', |
portfolio => 'Portfolio', |
portfolio => 'Portfolio', |
); |
official => 'Official courses (with institutional codes)', |
|
unofficial => 'Unofficial courses', |
|
); |
return %titles; |
return %titles; |
} |
} |
|
|
Line 1893 sub usercreation_types {
|
Line 1945 sub usercreation_types {
|
any => 'Any', |
any => 'Any', |
official => 'Institutional only ', |
official => 'Institutional only ', |
unofficial => 'Non-institutional only', |
unofficial => 'Non-institutional only', |
email => 'Email address', |
email => 'E-mail address', |
login => 'Institutional Login', |
login => 'Institutional Login', |
sso => 'SSO', |
sso => 'SSO', |
none => 'None', |
none => 'None', |
Line 2372 sub print_serverstatuses {
|
Line 2424 sub print_serverstatuses {
|
} |
} |
} |
} |
} |
} |
my $titles= &LONCAPA::loncgi::serverstatus_titles(); |
my $titles= &LONCAPA::lonauthcgi::serverstatus_titles(); |
my $rownum = 0; |
my $rownum = 0; |
my $css_class; |
my $css_class; |
foreach my $type (@pages) { |
foreach my $type (@pages) { |
Line 3503 END
|
Line 3555 END
|
} |
} |
|
|
sub modify_quotas { |
sub modify_quotas { |
my ($dom,%domconfig) = @_; |
my ($dom,$action,%domconfig) = @_; |
|
my ($context,@usertools); |
|
if ($action eq 'quotas') { |
|
$context = 'tools'; |
|
} else { |
|
$context = $action; |
|
} |
|
if ($context eq 'requestcourses') { |
|
@usertools = ('official','unofficial'); |
|
} else { |
|
@usertools = ('aboutme','blog','portfolio'); |
|
} |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my @usertools = ('aboutme','blog','portfolio'); |
|
my %titles = &tool_titles(); |
my %titles = &tool_titles(); |
my (%confhash,%toolshash); |
my (%confhash,%toolshash); |
foreach my $key (keys(%env)) { |
foreach my $key (keys(%env)) { |
if ($key =~ /^form\.quota_(.+)$/) { |
unless ($context eq 'requestcourses') { |
$confhash{'defaultquota'}{$1} = $env{$key}; |
if ($key =~ /^form\.quota_(.+)$/) { |
} elsif ($key =~ /^form\.tools_(.+)$/) { |
$confhash{'defaultquota'}{$1} = $env{$key}; |
|
} |
|
} |
|
if ($key =~ /^form\.\Q$context\E_(.+)$/) { |
@{$toolshash{$1}} = &Apache::loncommon::get_env_multiple($key); |
@{$toolshash{$1}} = &Apache::loncommon::get_env_multiple($key); |
} |
} |
} |
} |
$confhash{'defaultquota'}{'default'} = $env{'form.defaultquota'}; |
unless ($context eq 'requestcourses') { |
|
$confhash{'defaultquota'}{'default'} = $env{'form.defaultquota'}; |
|
} |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
foreach my $type (@{$types},'default','_LC_adv') { |
foreach my $type (@{$types},'default','_LC_adv') { |
if (grep(/^\Q$type\E$/,@{$toolshash{$item}})) { |
if (grep(/^\Q$type\E$/,@{$toolshash{$item}})) { |
Line 3525 sub modify_quotas {
|
Line 3592 sub modify_quotas {
|
} else { |
} else { |
$confhash{$item}{$type} = 0; |
$confhash{$item}{$type} = 0; |
} |
} |
if (ref($domconfig{'quotas'}) eq 'HASH') { |
if (ref($domconfig{$action}) eq 'HASH') { |
if (ref($domconfig{'quotas'}{$item}) eq 'HASH') { |
if (ref($domconfig{$action}{$item}) eq 'HASH') { |
if ($domconfig{'quotas'}{$item}{$type} ne $confhash{$item}{$type}) { |
if ($domconfig{$action}{$item}{$type} ne $confhash{$item}{$type}) { |
$changes{$item}{$type} = 1; |
$changes{$item}{$type} = 1; |
} |
} |
} else { |
} else { |
if (!$confhash{$item}{$type}) { |
if ($context eq 'requestcourses') { |
$changes{$item}{$type} = 1; |
if ($confhash{$item}{$type}) { |
|
$changes{$item}{$type} = 1; |
|
} |
|
} else { |
|
if (!$confhash{$item}{$type}) { |
|
$changes{$item}{$type} = 1; |
|
} |
} |
} |
} |
} |
} else { |
} else { |
if (!$confhash{$item}{$type}) { |
if ($context eq 'requestcourses') { |
$changes{$item}{$type} = 1; |
if ($confhash{$item}{$type}) { |
|
$changes{$item}{$type} = 1; |
|
} |
|
} else { |
|
if (!$confhash{$item}{$type}) { |
|
$changes{$item}{$type} = 1; |
|
} |
} |
} |
} |
} |
} |
} |
} |
} |
if (ref($domconfig{'quotas'}) eq 'HASH') { |
unless ($context eq 'requestcourses') { |
if (ref($domconfig{'quotas'}{'defaultquota'}) eq 'HASH') { |
if (ref($domconfig{'quotas'}) eq 'HASH') { |
foreach my $key (keys(%{$domconfig{'quotas'}{'defaultquota'}})) { |
if (ref($domconfig{'quotas'}{'defaultquota'}) eq 'HASH') { |
if (exists($confhash{'defaultquota'}{$key})) { |
foreach my $key (keys(%{$domconfig{'quotas'}{'defaultquota'}})) { |
if ($confhash{'defaultquota'}{$key} ne $domconfig{'quotas'}{'defaultquota'}{$key}) { |
if (exists($confhash{'defaultquota'}{$key})) { |
$changes{'defaultquota'}{$key} = 1; |
if ($confhash{'defaultquota'}{$key} ne $domconfig{'quotas'}{'defaultquota'}{$key}) { |
|
$changes{'defaultquota'}{$key} = 1; |
|
} |
|
} else { |
|
$confhash{'defaultquota'}{$key} = $domconfig{'quotas'}{'defaultquota'}{$key}; |
} |
} |
} else { |
|
$confhash{'defaultquota'}{$key} = $domconfig{'quotas'}{'defaultquota'}{$key}; |
|
} |
} |
} |
} else { |
} else { |
foreach my $key (keys(%{$domconfig{'quotas'}})) { |
foreach my $key (keys(%{$domconfig{'quotas'}})) { |
if (exists($confhash{'defaultquota'}{$key})) { |
if (exists($confhash{'defaultquota'}{$key})) { |
if ($confhash{'defaultquota'}{$key} ne $domconfig{'quotas'}{$key}) { |
if ($confhash{'defaultquota'}{$key} ne $domconfig{'quotas'}{$key}) { |
$changes{'defaultquota'}{$key} = 1; |
$changes{'defaultquota'}{$key} = 1; |
} |
|
} else { |
|
$confhash{'defaultquota'}{$key} = $domconfig{'quotas'}{$key}; |
} |
} |
} else { |
|
$confhash{'defaultquota'}{$key} = $domconfig{'quotas'}{$key}; |
|
} |
} |
} |
} |
} |
} |
} |
if (ref($confhash{'defaultquota'}) eq 'HASH') { |
if (ref($confhash{'defaultquota'}) eq 'HASH') { |
foreach my $key (keys(%{$confhash{'defaultquota'}})) { |
foreach my $key (keys(%{$confhash{'defaultquota'}})) { |
if (ref($domconfig{'quotas'}) eq 'HASH') { |
if (ref($domconfig{'quotas'}) eq 'HASH') { |
if (ref($domconfig{'quotas'}{'defaultquota'}) eq 'HASH') { |
if (ref($domconfig{'quotas'}{'defaultquota'}) eq 'HASH') { |
if (!exists($domconfig{'quotas'}{'defaultquota'}{$key})) { |
if (!exists($domconfig{'quotas'}{'defaultquota'}{$key})) { |
$changes{'defaultquota'}{$key} = 1; |
$changes{'defaultquota'}{$key} = 1; |
} |
|
} else { |
|
if (!exists($domconfig{'quotas'}{$key})) { |
|
$changes{'defaultquota'}{$key} = 1; |
|
} |
} |
} |
} else { |
} else { |
if (!exists($domconfig{'quotas'}{$key})) { |
$changes{'defaultquota'}{$key} = 1; |
$changes{'defaultquota'}{$key} = 1; |
|
} |
|
} |
} |
} else { |
|
$changes{'defaultquota'}{$key} = 1; |
|
} |
} |
} |
} |
} |
} |
Line 3588 sub modify_quotas {
|
Line 3669 sub modify_quotas {
|
} |
} |
|
|
my %quotahash = ( |
my %quotahash = ( |
quotas => { %confhash } |
$action => { %confhash } |
); |
); |
my $putresult = &Apache::lonnet::put_dom('configuration',\%quotahash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%quotahash, |
$dom); |
$dom); |
Line 3598 sub modify_quotas {
|
Line 3679 sub modify_quotas {
|
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
|
|
$resulttext = &mt('Changes made:').'<ul>'; |
$resulttext = &mt('Changes made:').'<ul>'; |
if (ref($changes{'defaultquota'}) eq 'HASH') { |
unless ($context eq 'requestcourses') { |
$resulttext .= '<li>'.&mt('Portfolio default quotas').'<ul>'; |
if (ref($changes{'defaultquota'}) eq 'HASH') { |
foreach my $type (@{$types},'default') { |
$resulttext .= '<li>'.&mt('Portfolio default quotas').'<ul>'; |
if (defined($changes{'defaultquota'}{$type})) { |
foreach my $type (@{$types},'default') { |
my $typetitle = $usertypes->{$type}; |
if (defined($changes{'defaultquota'}{$type})) { |
if ($type eq 'default') { |
my $typetitle = $usertypes->{$type}; |
$typetitle = $othertitle; |
if ($type eq 'default') { |
|
$typetitle = $othertitle; |
|
} |
|
$resulttext .= '<li>'.&mt('[_1] set to [_2] Mb',$typetitle,$confhash{'defaultquota'}{$type}).'</li>'; |
} |
} |
$resulttext .= '<li>'.&mt('[_1] set to [_2] Mb',$typetitle,$confhash{'defaultquota'}{$type}).'</li>'; |
|
} |
} |
|
$resulttext .= '</ul></li>'; |
} |
} |
$resulttext .= '</ul></li>'; |
|
} |
} |
|
my %newenv; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
if (ref($changes{$item}) eq 'HASH') { |
if (ref($changes{$item}) eq 'HASH') { |
my $hashid = $env{'user.name'}.':'.$env{'user.domain'}; |
my $newacc = |
&Apache::lonnet::devalidate_cache_new('usertools.'.$item,$hashid); |
&Apache::lonnet::usertools_access($env{'user.name'}, |
|
$env{'user.domain'}, |
|
$item,'reload',$context); |
|
if ($context eq 'requestcourses') { |
|
if ($env{'environment.canrequest.'.$item} ne $newacc) { |
|
$newenv{'environment.canrequest.'.$item} = $newacc; |
|
} |
|
} else { |
|
if ($env{'environment.availabletools.'.$item} ne $newacc) { |
|
$newenv{'environment.availabletools.'.$item} = $newacc; |
|
} |
|
} |
$resulttext .= '<li>'.$titles{$item}.'<ul>'; |
$resulttext .= '<li>'.$titles{$item}.'<ul>'; |
foreach my $type (@{$types},'default','_LC_adv') { |
foreach my $type (@{$types},'default','_LC_adv') { |
if ($changes{$item}{$type}) { |
if ($changes{$item}{$type}) { |
Line 3635 sub modify_quotas {
|
Line 3730 sub modify_quotas {
|
} |
} |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
|
if (keys(%newenv)) { |
|
&Apache::lonnet::appenv(\%newenv); |
|
} |
} else { |
} else { |
$resulttext = &mt('No changes made to availability of home pages, blogs, portfolios or default quotas'); |
if ($context eq 'requestcourses') { |
|
$resulttext = &mt('No changes made to rights to request creation of courses.'); |
|
} else { |
|
$resulttext = &mt('No changes made to availability of home pages, blogs, portfolios or default quotas'); |
|
} |
} |
} |
} else { |
} else { |
$resulttext = '<span class="LC_error">'. |
$resulttext = '<span class="LC_error">'. |
Line 4751 sub modify_coursecategories {
|
Line 4853 sub modify_coursecategories {
|
} else { |
} else { |
$changes{'togglecats'} = 1; |
$changes{'togglecats'} = 1; |
$changes{'categorize'} = 1; |
$changes{'categorize'} = 1; |
$domconfig{'coursecategories'}{'togglecats'} = $env{'form.togglecats'}; |
$domconfig{'coursecategories'} = { |
$domconfig{'coursecategories'}{'categorize'} = $env{'form.categorize'}; |
togglecats => $env{'form.togglecats'}, |
|
categorize => $env{'form.categorize'}, |
|
}; |
} |
} |
if (ref($cathash) eq 'HASH') { |
if (ref($cathash) eq 'HASH') { |
if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '') && ($env{'form.instcode'} == 0)) { |
if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '') && ($env{'form.instcode'} == 0)) { |
Line 4967 sub modify_serverstatuses {
|
Line 5071 sub modify_serverstatuses {
|
my %serverstatushash = ( |
my %serverstatushash = ( |
serverstatuses => \%newserverstatus, |
serverstatuses => \%newserverstatus, |
); |
); |
my $putresult = &Apache::lonnet::put_dom('configuration',\%serverstatushash, |
|
$dom); |
|
my %changes; |
my %changes; |
foreach my $type (@pages) { |
foreach my $type (@pages) { |
if (ref($currserverstatus{$type}) eq 'HASH') { |
foreach my $setting ('namedusers','machines') { |
my @currnamed = split(/,/,$currserverstatus{$type}{'namedusers'}); |
my (@current,@new); |
my @newusers = split(/,/,$newserverstatus{$type}{'namedusers'}); |
if (ref($currserverstatus{$type}) eq 'HASH') { |
foreach my $item (@currnamed) { |
if ($currserverstatus{$type}{$setting} ne '') { |
if (!grep(/^\Q$item\E$/,@newusers)) { |
@current = split(/,/,$currserverstatus{$type}{$setting}); |
$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 $item (@newmachines) { |
if ($newserverstatus{$type}{$setting} ne '') { |
if (!grep(/^\Q$item\E$/,@currmachines)) { |
@new = split(/,/,$newserverstatus{$type}{$setting}); |
$changes{$type}{'machines'} = 1; |
} |
last; |
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) { |
if (keys(%changes) > 0) { |
my $titles= &LONCAPA::loncgi::serverstatus_titles(); |
my $titles= &LONCAPA::lonauthcgi::serverstatus_titles(); |
my $putresult = &Apache::lonnet::put_dom('configuration', |
my $putresult = &Apache::lonnet::put_dom('configuration', |
\%serverstatushash,$dom); |
\%serverstatushash,$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
$resulttext .= &mt('Changes made:').'<ul>'; |
$resulttext .= &mt('Changes made:').'<ul>'; |
foreach my $type (@pages) { |
foreach my $type (@pages) { |
if (defined($changes{$type})) { |
if (ref($changes{$type}) eq 'HASH') { |
$resulttext .= '<li>'.$titles->{$type}.'<ul>'; |
$resulttext .= '<li>'.$titles->{$type}.'<ul>'; |
if (defined($changes{$type}{'namedusers'})) { |
if ($changes{$type}{'namedusers'}) { |
if ($newserverstatus{$type}{'namedusers'} eq '') { |
if ($newserverstatus{$type}{'namedusers'} eq '') { |
$resulttext .= '<li>'.&mt("Access terminated for all specific (named) users").'</li>'."\n"; |
$resulttext .= '<li>'.&mt("Access terminated for all specific (named) users").'</li>'."\n"; |
} else { |
} else { |
$resulttext .= '<li>'.&mt("Access available for the following specified users: ").$newserverstatus{$type}{'namedusers'}.'</li>'."\n"; |
$resulttext .= '<li>'.&mt("Access available for the following specified users: ").$newserverstatus{$type}{'namedusers'}.'</li>'."\n"; |
} |
} |
} elsif (defined($changes{$type}{'machines'})) { |
} |
|
if ($changes{$type}{'machines'}) { |
if ($newserverstatus{$type}{'machines'} eq '') { |
if ($newserverstatus{$type}{'machines'} eq '') { |
$resulttext .= '<li>'.&mt("Access terminated for all specific IP addresses").'</li>'."\n"; |
$resulttext .= '<li>'.&mt("Access terminated for all specific IP addresses").'</li>'."\n"; |
} else { |
} else { |