version 1.160.6.56, 2015/03/11 15:56:36
|
version 1.254, 2014/10/06 00:48:39
|
Line 213 sub handler {
|
Line 213 sub handler {
|
'quotas','autoenroll','autoupdate','autocreate', |
'quotas','autoenroll','autoupdate','autocreate', |
'directorysrch','usercreation','usermodification', |
'directorysrch','usercreation','usermodification', |
'contacts','defaults','scantron','coursecategories', |
'contacts','defaults','scantron','coursecategories', |
'serverstatuses','requestcourses','coursedefaults', |
'serverstatuses','requestcourses','helpsettings', |
'usersessions','loadbalancing','requestauthor', |
'coursedefaults','usersessions','loadbalancing', |
'selfenrollment','inststatus'],$dom); |
'requestauthor','selfenrollment','inststatus'],$dom); |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
'autoupdate','autocreate','directorysrch','contacts', |
'autoupdate','autocreate','directorysrch','contacts', |
'usercreation','selfcreation','usermodification','scantron', |
'usercreation','selfcreation','usermodification','scantron', |
'requestcourses','requestauthor','coursecategories', |
'requestcourses','requestauthor','coursecategories', |
'serverstatuses','coursedefaults','selfenrollment', |
'serverstatuses','helpsettings', |
'usersessions'); |
'coursedefaults','selfenrollment','usersessions'); |
my %existing; |
my %existing; |
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
%existing = %{$domconfig{'loadbalancing'}}; |
%existing = %{$domconfig{'loadbalancing'}}; |
Line 250 sub handler {
|
Line 250 sub handler {
|
header => [{col1 => 'Log-in Page Items', |
header => [{col1 => 'Log-in Page Items', |
col2 => '',}, |
col2 => '',}, |
{col1 => 'Log-in Help', |
{col1 => 'Log-in Help', |
col2 => 'Value'}, |
|
{col1 => 'Custom HTML in document head', |
|
col2 => 'Value'}], |
col2 => 'Value'}], |
print => \&print_login, |
print => \&print_login, |
modify => \&modify_login, |
modify => \&modify_login, |
Line 411 sub handler {
|
Line 409 sub handler {
|
print => \&print_serverstatuses, |
print => \&print_serverstatuses, |
modify => \&modify_serverstatuses, |
modify => \&modify_serverstatuses, |
}, |
}, |
|
'helpsettings' => |
|
{text => 'Help page settings', |
|
help => 'Domain_Configuration_Help_Settings', |
|
header => [{col1 => 'Help Settings (logged-in users)', |
|
col2 => 'Value'}], |
|
print => \&print_helpsettings, |
|
modify => \&modify_helpsettings, |
|
}, |
'coursedefaults' => |
'coursedefaults' => |
{text => 'Course/Community defaults', |
{text => 'Course/Community defaults', |
help => 'Domain_Configuration_Course_Defaults', |
help => 'Domain_Configuration_Course_Defaults', |
header => [{col1 => 'Defaults which can be overridden for each course by a DC', |
header => [{col1 => 'Defaults which can be overridden in each course by a CC', |
|
col2 => 'Value',}, |
|
{col1 => 'Defaults which can be overridden for each course by a DC', |
col2 => 'Value',},], |
col2 => 'Value',},], |
print => \&print_coursedefaults, |
print => \&print_coursedefaults, |
modify => \&modify_coursedefaults, |
modify => \&modify_coursedefaults, |
Line 431 sub handler {
|
Line 439 sub handler {
|
print => \&print_selfenrollment, |
print => \&print_selfenrollment, |
modify => \&modify_selfenrollment, |
modify => \&modify_selfenrollment, |
}, |
}, |
|
'privacy' => |
|
{text => 'User Privacy', |
|
help => 'Domain_Configuration_User_Privacy', |
|
header => [{col1 => 'Setting', |
|
col2 => 'Value',}], |
|
print => \&print_privacy, |
|
modify => \&modify_privacy, |
|
}, |
'usersessions' => |
'usersessions' => |
{text => 'User session hosting/offloading', |
{text => 'User session hosting/offloading', |
help => 'Domain_Configuration_User_Sessions', |
help => 'Domain_Configuration_User_Sessions', |
Line 463 sub handler {
|
Line 479 sub handler {
|
{col1 => 'Log-in Page Items', |
{col1 => 'Log-in Page Items', |
col2 => ''}, |
col2 => ''}, |
{col1 => 'Log-in Help', |
{col1 => 'Log-in Help', |
col2 => 'Value'}, |
|
{col1 => 'Custom HTML in document head', |
|
col2 => 'Value'}], |
col2 => 'Value'}], |
print => \&print_login, |
print => \&print_login, |
modify => \&modify_login, |
modify => \&modify_login, |
Line 617 sub process_changes {
|
Line 631 sub process_changes {
|
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
} elsif ($action eq 'requestauthor') { |
} elsif ($action eq 'requestauthor') { |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
|
} elsif ($action eq 'helpsettings') { |
|
$output = &modify_helpsettings($r,$dom,$confname,%domconfig); |
} elsif ($action eq 'coursedefaults') { |
} elsif ($action eq 'coursedefaults') { |
$output = &modify_coursedefaults($dom,$lastactref,%domconfig); |
$output = &modify_coursedefaults($dom,$lastactref,%domconfig); |
} elsif ($action eq 'selfenrollment') { |
} elsif ($action eq 'selfenrollment') { |
Line 654 sub print_config_box {
|
Line 670 sub print_config_box {
|
my $colspan = ''; |
my $colspan = ''; |
my $rightcolspan = ''; |
my $rightcolspan = ''; |
if (($action eq 'rolecolors') || ($action eq 'defaults') || |
if (($action eq 'rolecolors') || ($action eq 'defaults') || |
(($action eq 'login') && ($numheaders < 4))) { |
(($action eq 'login') && ($numheaders < 3))) { |
$colspan = ' colspan="2"'; |
$colspan = ' colspan="2"'; |
} |
} |
if ($action eq 'usersessions') { |
if ($action eq 'usersessions') { |
Line 670 sub print_config_box {
|
Line 686 sub print_config_box {
|
</tr>'; |
</tr>'; |
$rowtotal ++; |
$rowtotal ++; |
if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') || |
if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') || |
($action eq 'usermodification') || ($action eq 'defaults') || |
($action eq 'usermodification') || ($action eq 'defaults') || ($action eq 'coursedefaults') || |
($action eq 'selfenrollment') || ($action eq 'usersessions')) { |
($action eq 'selfenrollment') || ($action eq 'usersessions')) { |
$output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'coursecategories') { |
} elsif ($action eq 'coursecategories') { |
$output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal); |
$output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal); |
} elsif ($action eq 'login') { |
} elsif ($action eq 'login') { |
if ($numheaders == 4) { |
if ($numheaders == 3) { |
$colspan = ' colspan="2"'; |
$colspan = ' colspan="2"'; |
$output .= &print_login('service',$dom,$confname,$phase,$settings,\$rowtotal); |
$output .= &print_login('service',$dom,$confname,$phase,$settings,\$rowtotal); |
} else { |
} else { |
Line 725 sub print_config_box {
|
Line 741 sub print_config_box {
|
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
} |
} |
$rowtotal ++; |
$rowtotal ++; |
} elsif (($action eq 'usermodification') || ($action eq 'defaults')) { |
} elsif (($action eq 'usermodification') || ($action eq 'coursedefaults') || |
|
($action eq 'defaults')) { |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'login') { |
} elsif ($action eq 'login') { |
if ($numheaders == 4) { |
if ($numheaders == 3) { |
$output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal).' |
$output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal).' |
</table> |
</table> |
</td> |
</td> |
Line 744 sub print_config_box {
|
Line 761 sub print_config_box {
|
} else { |
} else { |
$output .= &print_login('help',$dom,$confname,$phase,$settings,\$rowtotal); |
$output .= &print_login('help',$dom,$confname,$phase,$settings,\$rowtotal); |
} |
} |
$output .= ' |
|
</table> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<table class="LC_nested"> |
|
<tr class="LC_info_row">'; |
|
if ($numheaders == 4) { |
|
$output .= ' |
|
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[3]->{'col1'}).'</td> |
|
<td class="LC_right_item"'.$colspan.'>'.&mt($item->{'header'}->[3]->{'col2'}).'</td> |
|
</tr>'; |
|
} else { |
|
$output .= ' |
|
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
|
<td class="LC_right_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col2'}).'</td> |
|
</tr>'; |
|
} |
|
$rowtotal ++; |
|
$output .= &print_login('headtag',$dom,$confname,$phase,$settings,\$rowtotal); |
|
} elsif ($action eq 'requestcourses') { |
} elsif ($action eq 'requestcourses') { |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal); |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal); |
$rowtotal ++; |
$rowtotal ++; |
Line 889 sub print_config_box {
|
Line 885 sub print_config_box {
|
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); |
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); |
} elsif ($action eq 'helpsettings') { |
} elsif ($action eq 'helpsettings') { |
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); |
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); |
} elsif ($action eq 'coursedefaults') { |
|
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
|
} |
} |
} |
} |
$output .= ' |
$output .= ' |
Line 1187 sub print_login {
|
Line 1181 sub print_login {
|
$itemcount ++; |
$itemcount ++; |
} |
} |
$datatable .= &captcha_choice('login',$settings,$itemcount); |
$datatable .= &captcha_choice('login',$settings,$itemcount); |
} elsif ($caller eq 'headtag') { |
|
my %domservers = &Apache::lonnet::get_servers($dom); |
|
my $choice = $choices{'headtag'}; |
|
$css_class = ' class="LC_odd_row"'; |
|
$datatable .= '<tr'.$css_class.'><td colspan="2">'.$choice.'</td>'. |
|
'<td align="left"><table><tr><th>'.$choices{'hostid'}.'</th>'. |
|
'<th>'.$choices{'current'}.'</th>'. |
|
'<th>'.$choices{'action'}.'</th>'. |
|
'<th>'.$choices{'exempt'}.'</th></tr>'."\n"; |
|
my (%currurls,%currexempt); |
|
if (ref($settings) eq 'HASH') { |
|
if (ref($settings->{'headtag'}) eq 'HASH') { |
|
foreach my $lonhost (keys(%{$settings->{'headtag'}})) { |
|
if (ref($settings->{'headtag'}{$lonhost}) eq 'HASH') { |
|
$currurls{$lonhost} = $settings->{'headtag'}{$lonhost}{'url'}; |
|
$currexempt{$lonhost} = $settings->{'headtag'}{$lonhost}{'exempt'}; |
|
} |
|
} |
|
} |
|
} |
|
my %lt = &Apache::lonlocal::texthash( |
|
del => 'Delete?', |
|
rep => 'Replace:', |
|
upl => 'Upload:', |
|
curr => 'View contents', |
|
none => 'None', |
|
); |
|
my $switchserver = &check_switchserver($dom,$confname); |
|
foreach my $lonhost (sort(keys(%domservers))) { |
|
my $exempt = &check_exempt_addresses($currexempt{$lonhost}); |
|
$datatable .= '<tr><td>'.$domservers{$lonhost}.'</td>'; |
|
if ($currurls{$lonhost}) { |
|
$datatable .= '<td class="LC_right_item"><a href="'. |
|
"javascript:void(open('$currurls{$lonhost}?inhibitmenu=yes','Custom_HeadTag', |
|
'menubar=0,toolbar=1,scrollbars=1,width=600,height=500,resizable=yes'))". |
|
'">'.$lt{'curr'}.'</a></td>'. |
|
'<td><span class="LC_nobreak"><label>'. |
|
'<input type="checkbox" name="loginheadtag_del" value="'.$lonhost.'" />'. |
|
$lt{'del'}.'</label> '.$lt{'rep'}.'</span>'; |
|
} else { |
|
$datatable .= '<td class="LC_right_item">'.$lt{'none'}.'</td><td>'.$lt{'upl'}; |
|
} |
|
$datatable .='<br />'; |
|
if ($switchserver) { |
|
$datatable .= &mt('Upload to library server: [_1]',$switchserver); |
|
} else { |
|
$datatable .= '<input type="file" name="loginheadtag_'.$lonhost.'" />'; |
|
} |
|
$datatable .= '</td><td><input type="textbox" name="loginheadtagexempt_'.$lonhost.'" value="'.$exempt.'" /></td></tr>'; |
|
} |
|
$datatable .= '</table></td></tr>'; |
|
} |
} |
return $datatable; |
return $datatable; |
} |
} |
Line 1271 sub login_choices {
|
Line 1214 sub login_choices {
|
link => "Link", |
link => "Link", |
alink => "Active link", |
alink => "Active link", |
vlink => "Visited link", |
vlink => "Visited link", |
headtag => "Custom markup", |
|
action => "Action", |
|
current => "Current", |
|
); |
); |
return %choices; |
return %choices; |
} |
} |
Line 5239 sub serverstatus_pages {
|
Line 5179 sub serverstatus_pages {
|
|
|
sub defaults_javascript { |
sub defaults_javascript { |
my ($settings) = @_; |
my ($settings) = @_; |
return unless (ref($settings) eq 'HASH'); |
return unless (ref($settings) eq 'HASH'); |
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH')) { |
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH')) { |
my $maxnum = scalar(@{$settings->{'inststatusorder'}}); |
my $maxnum = scalar(@{$settings->{'inststatusorder'}}); |
if ($maxnum eq '') { |
if ($maxnum eq '') { |
Line 5839 sub modify_login {
|
Line 5779 sub modify_login {
|
} |
} |
|
|
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %domservers = &Apache::lonnet::get_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 5882 sub modify_login {
|
Line 5821 sub modify_login {
|
$changes{'loginvia'}{$lonhost} = 1; |
$changes{'loginvia'}{$lonhost} = 1; |
} |
} |
if ($item eq 'exempt') { |
if ($item eq 'exempt') { |
$new = &check_exempt_addresses($new); |
$new =~ s/^\s+//; |
|
$new =~ s/\s+$//; |
|
my @poss_ips = split(/\s*[,:]\s*/,$new); |
|
my @okips; |
|
foreach my $ip (@poss_ips) { |
|
if ($ip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { |
|
if (($1 <= 255) && ($2 <= 255) && ($3 <= 255) && ($4 <= 255)) { |
|
push(@okips,$ip); |
|
} |
|
} |
|
} |
|
if (@okips > 0) { |
|
$new = join(',',@okips); |
|
} else { |
|
$new = ''; |
|
} |
} |
} |
$loginhash{login}{loginvia}{$lonhost}{$item} = $new; |
$loginhash{login}{loginvia}{$lonhost}{$item} = $new; |
} |
} |
Line 5994 sub modify_login {
|
Line 5948 sub modify_login {
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
} |
} |
} |
} |
|
|
my (%currheadtagurls,%currexempt,@newhosts,%newheadtagurls,%possexempt); |
|
if (ref($domconfig{'login'}) eq 'HASH') { |
|
if (ref($domconfig{'login'}{'headtag'}) eq 'HASH') { |
|
foreach my $lonhost (keys(%{$domconfig{'login'}{'headtag'}})) { |
|
if ($domservers{$lonhost}) { |
|
if (ref($domconfig{'login'}{'headtag'}{$lonhost}) eq 'HASH') { |
|
$currheadtagurls{$lonhost} = $domconfig{'login'}{'headtag'}{$lonhost}{'url'}; |
|
$currexempt{$lonhost} = $domconfig{'login'}{'headtagexempt'}{$lonhost}{'exempt'} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
my @delheadtagurls = &Apache::loncommon::get_env_multiple('form.loginheadtag_del'); |
|
foreach my $lonhost (sort(keys(%domservers))) { |
|
if (grep(/^\Q$lonhost\E$/,@delheadtagurls)) { |
|
$changes{'headtag'}{$lonhost} = 1; |
|
} else { |
|
if ($env{'form.loginheadtagexempt_'.$lonhost}) { |
|
$possexempt{$lonhost} = &check_exempt_addresses($env{'form.loginheadtagexempt_'.$lonhost}); |
|
} |
|
if ($env{'form.loginheadtag_'.$lonhost.'.filename'}) { |
|
push(@newhosts,$lonhost); |
|
} elsif ($currheadtagurls{$lonhost}) { |
|
$loginhash{'login'}{'headtag'}{$lonhost}{'url'} = $currheadtagurls{$lonhost}; |
|
if ($currexempt{$lonhost}) { |
|
if ((!exists($possexempt{$lonhost})) || ($possexempt{$lonhost} ne $currexempt{$lonhost})) { |
|
$changes{'headtag'}{$lonhost} = 1; |
|
} |
|
} elsif ($possexempt{$lonhost}) { |
|
$changes{'headtag'}{$lonhost} = 1; |
|
} |
|
if ($possexempt{$lonhost}) { |
|
$loginhash{'login'}{'headtag'}{$lonhost}{'exempt'} = $possexempt{$lonhost}; |
|
} |
|
} |
|
} |
|
} |
|
if (@newhosts) { |
|
my $error; |
|
my ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
|
if ($configuserok eq 'ok') { |
|
if ($switchserver) { |
|
$error = &mt("Upload of custom markup is not permitted to this server: [_1]",$switchserver); |
|
} elsif ($author_ok eq 'ok') { |
|
foreach my $lonhost (@newhosts) { |
|
my $formelem = 'loginheadtag_'.$lonhost; |
|
(my $result,$newheadtagurls{$lonhost}) = &publishlogo($r,'upload',$formelem,$dom,$confname, |
|
"login/headtag/$lonhost",'','', |
|
$env{'form.loginheadtag_'.$lonhost.'.filename'}); |
|
if ($result eq 'ok') { |
|
$loginhash{'login'}{'headtag'}{$lonhost}{'url'} = $newheadtagurls{$lonhost}; |
|
$changes{'headtag'}{$lonhost} = 1; |
|
if ($possexempt{$lonhost}) { |
|
$loginhash{'login'}{'headtag'}{$lonhost}{'exempt'} = $possexempt{$lonhost}; |
|
} |
|
} else { |
|
my $puberror = &mt("Upload of [_1] failed because an error occurred publishing the file in RES space. Error was: [_2].", |
|
$newheadtagurls{$lonhost},$result); |
|
$errors .= '<li><span class="LC_error">'.$puberror.'</span></li>'; |
|
if ((grep(/^\Q$lonhost\E$/,keys(%currheadtagurls))) && |
|
(!grep(/^\Q$lonhost\E$/,@delheadtagurls))) { |
|
$loginhash{'login'}{'headtag'}{$lonhost} = $currheadtagurls{$lonhost}; |
|
} |
|
} |
|
} |
|
} else { |
|
$error = &mt("Upload of custom markup file(s) failed because an author role could not be assigned to a Domain Configuration user ([_1]) in domain: [_2]. Error was: [_3].",$confname,$dom,$author_ok); |
|
} |
|
} else { |
|
$error = &mt("Upload of custom markup file(s) failed because a Domain Configuration user ([_1]) could not be created in domain: [_2]. Error was: [_3].",$confname,$dom,$configuserok); |
|
} |
|
if ($error) { |
|
&Apache::lonnet::logthis($error); |
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
|
} |
|
} |
|
|
|
&process_captcha('login',\%changes,$loginhash{'login'},$domconfig{'login'}); |
&process_captcha('login',\%changes,$loginhash{'login'},$domconfig{'login'}); |
|
|
my $defaulthelpfile = '/adm/loginproblems.html'; |
my $defaulthelpfile = '/adm/loginproblems.html'; |
Line 6173 sub modify_login {
|
Line 6048 sub modify_login {
|
} |
} |
} |
} |
} |
} |
} elsif ($item eq 'headtag') { |
|
if (ref($changes{$item}) eq 'HASH') { |
|
foreach my $lonhost (sort(keys(%{$changes{$item}}))) { |
|
if (grep(/^\Q$lonhost\E$/,@delheadtagurls)) { |
|
$resulttext .= '<li>'.&mt('custom markup file removed for [_1]',$domservers{$lonhost}).'</li>'; |
|
} elsif (ref($loginhash{'login'}{'headtag'}{$lonhost}) eq 'HASH') { |
|
$resulttext .= '<li><a href="'. |
|
"javascript:void(open('$loginhash{'login'}{'headtag'}{$lonhost}{'url'}?inhibitmenu=yes','Custom_HeadTag', |
|
'menubar=0,toolbar=1,scrollbars=1,width=600,height=500,resizable=yes'))". |
|
'">'.&mt('custom markup').'</a> '.&mt('(for [_1])',$servers{$lonhost}).' '; |
|
if ($possexempt{$lonhost}) { |
|
$resulttext .= &mt('not included for client IP(s): [_1]',$possexempt{$lonhost}); |
|
} else { |
|
$resulttext .= &mt('included for any client IP'); |
|
} |
|
$resulttext .= '</li>'; |
|
} |
|
} |
|
} |
|
} elsif ($item eq 'captcha') { |
} elsif ($item eq 'captcha') { |
if (ref($loginhash{'login'}) eq 'HASH') { |
if (ref($loginhash{'login'}) eq 'HASH') { |
my $chgtxt; |
my $chgtxt; |
Line 6247 sub modify_login {
|
Line 6103 sub modify_login {
|
return $resulttext; |
return $resulttext; |
} |
} |
|
|
sub check_exempt_addresses { |
|
my ($iplist) = @_; |
|
$iplist =~ s/^\s+//; |
|
$iplist =~ s/\s+$//; |
|
my @poss_ips = split(/\s*[,:]\s*/,$iplist); |
|
my (@okips,$new); |
|
foreach my $ip (@poss_ips) { |
|
if ($ip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { |
|
if (($1 <= 255) && ($2 <= 255) && ($3 <= 255) && ($4 <= 255)) { |
|
push(@okips,$ip); |
|
} |
|
} |
|
} |
|
if (@okips > 0) { |
|
$new = join(',',@okips); |
|
} else { |
|
$new = ''; |
|
} |
|
return $new; |
|
} |
|
|
|
sub color_font_choices { |
sub color_font_choices { |
my %choices = |
my %choices = |
&Apache::lonlocal::texthash ( |
&Apache::lonlocal::texthash ( |
Line 7156 sub modify_quotas {
|
Line 6991 sub modify_quotas {
|
my $newpos = $env{'form.'.$itemid}; |
my $newpos = $env{'form.'.$itemid}; |
$newpos =~ s/\D+//g; |
$newpos =~ s/\D+//g; |
foreach my $item ('subject','title','publisher','author') { |
foreach my $item ('subject','title','publisher','author') { |
next if ((($item eq 'author') || ($item eq 'publisher')) && |
next if ((($item eq 'author') || ($item eq 'publisher')) && |
($type eq 'templates')); |
($type eq 'templates')); |
$confhash{$type}{$key}{$item} = $env{'form.'.$type.'_'.$item.'_'.$i}; |
$confhash{$type}{$key}{$item} = $env{'form.'.$type.'_'.$item.'_'.$i}; |
if ($domconfig{$action}{$type}{$key}{$item} ne $confhash{$type}{$key}{$item}) { |
if ($domconfig{$action}{$type}{$key}{$item} ne $confhash{$type}{$key}{$item}) { |
Line 10944 sub modify_loadbalancing {
|
Line 10779 sub modify_loadbalancing {
|
$rule = $env{'form.loadbalancing_rules_'.$i.'_'.$type}; |
$rule = $env{'form.loadbalancing_rules_'.$i.'_'.$type}; |
} |
} |
if ($rule eq 'specific') { |
if ($rule eq 'specific') { |
my $specifiedhost = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type}; |
$rule = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type}; |
if (exists($servers{$specifiedhost})) { |
|
$rule = $specifiedhost; |
|
} |
|
} |
} |
$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type} = $rule; |
$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type} = $rule; |
if (ref($currrules{$balancer}) eq 'HASH') { |
if (ref($currrules{$balancer}) eq 'HASH') { |
Line 11021 sub modify_loadbalancing {
|
Line 10853 sub modify_loadbalancing {
|
if ($rule eq '') { |
if ($rule eq '') { |
$balancetext = $ruletitles{'default'}; |
$balancetext = $ruletitles{'default'}; |
} elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') || |
} elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') || |
($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) { |
($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) { |
if (($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) { |
if (($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) { |
foreach my $sparetype (@sparestypes) { |
foreach my $sparetype (@sparestypes) { |
if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') { |
if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') { |