version 1.288, 2017/01/23 22:46:44
|
version 1.297, 2017/05/09 03:04:26
|
Line 27
|
Line 27
|
# |
# |
# |
# |
############################################################### |
############################################################### |
############################################################## |
############################################################### |
|
|
=pod |
=pod |
|
|
Line 220 sub handler {
|
Line 220 sub handler {
|
'coursedefaults','usersessions','loadbalancing', |
'coursedefaults','usersessions','loadbalancing', |
'requestauthor','selfenrollment','inststatus', |
'requestauthor','selfenrollment','inststatus', |
'ltitools','ssl','trust'],$dom); |
'ltitools','ssl','trust'],$dom); |
|
if (ref($domconfig{'ltitools'}) eq 'HASH') { |
|
my %encconfig = |
|
&Apache::lonnet::get_dom('encconfig',['ltitools'],$dom); |
|
if (ref($encconfig{'ltitools'}) eq 'HASH') { |
|
foreach my $id (keys(%{$domconfig{'ltitools'}})) { |
|
if (ref($domconfig{'ltitools'}{$id}) eq 'HASH') { |
|
foreach my $item ('key','secret') { |
|
$domconfig{'ltitools'}{$id}{$item} = $encconfig{'ltitools'}{$id}{$item}; |
|
} |
|
} |
|
} |
|
} |
|
} |
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', |
Line 265 sub handler {
|
Line 278 sub handler {
|
help => 'Domain_Configuration_LangTZAuth', |
help => 'Domain_Configuration_LangTZAuth', |
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value'}, |
col2 => 'Value'}, |
|
{col1 => 'Internal Authentication', |
|
col2 => 'Value'}, |
{col1 => 'Institutional user types', |
{col1 => 'Institutional user types', |
col2 => 'Assignable to e-mail usernames'}], |
col2 => 'Assignable to e-mail usernames'}], |
print => \&print_defaults, |
print => \&print_defaults, |
Line 486 sub handler {
|
Line 501 sub handler {
|
}, |
}, |
'ltitools' => |
'ltitools' => |
{text => 'External Tools (LTI)', |
{text => 'External Tools (LTI)', |
help => 'Domain_configuration_LTI_Tools', |
help => 'Domain_Configuration_LTI_Tools', |
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value',}], |
col2 => 'Value',}], |
print => \&print_ltitools, |
print => \&print_ltitools, |
Line 499 sub handler {
|
Line 514 sub handler {
|
col2 => 'Certificate Status'}, |
col2 => 'Certificate Status'}, |
{col1 => 'Connections to other servers', |
{col1 => 'Connections to other servers', |
col2 => 'Rules'}, |
col2 => 'Rules'}, |
|
{col1 => 'Connections from other servers', |
|
col2 => 'Rules'}, |
{col1 => "Replicating domain's published content", |
{col1 => "Replicating domain's published content", |
col2 => 'Rules'}], |
col2 => 'Rules'}], |
print => \&print_ssl, |
print => \&print_ssl, |
Line 673 sub process_changes {
|
Line 690 sub process_changes {
|
} elsif ($action eq 'autocreate') { |
} elsif ($action eq 'autocreate') { |
$output = &modify_autocreate($dom,%domconfig); |
$output = &modify_autocreate($dom,%domconfig); |
} elsif ($action eq 'directorysrch') { |
} elsif ($action eq 'directorysrch') { |
$output = &modify_directorysrch($dom,%domconfig); |
$output = &modify_directorysrch($dom,$lastactref,%domconfig); |
} elsif ($action eq 'usercreation') { |
} elsif ($action eq 'usercreation') { |
$output = &modify_usercreation($dom,%domconfig); |
$output = &modify_usercreation($dom,%domconfig); |
} elsif ($action eq 'selfcreation') { |
} elsif ($action eq 'selfcreation') { |
Line 806 sub print_config_box {
|
Line 823 sub print_config_box {
|
if (($action eq 'autoupdate') || ($action eq 'usercreation') || |
if (($action eq 'autoupdate') || ($action eq 'usercreation') || |
($action eq 'selfcreation') || ($action eq 'selfenrollment') || |
($action eq 'selfcreation') || ($action eq 'selfenrollment') || |
($action eq 'usersessions') || ($action eq 'coursecategories') || |
($action eq 'usersessions') || ($action eq 'coursecategories') || |
($action eq 'ssl') || ($action eq 'trust') || ($action eq 'contacts')) { |
($action eq 'trust') || ($action eq 'contacts') || ($action eq 'defaults')) { |
if ($action eq 'coursecategories') { |
if ($action eq 'coursecategories') { |
$output .= &print_coursecategories('middle',$dom,$item,$settings,\$rowtotal); |
$output .= &print_coursecategories('middle',$dom,$item,$settings,\$rowtotal); |
$colspan = ' colspan="2"'; |
$colspan = ' colspan="2"'; |
Line 866 sub print_config_box {
|
Line 883 sub print_config_box {
|
($action eq 'defaults') || ($action eq 'directorysrch') || |
($action eq 'defaults') || ($action eq 'directorysrch') || |
($action eq 'helpsettings')) { |
($action eq 'helpsettings')) { |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'ssl') { |
|
$output .= $item->{'print'}->('connto',$dom,$settings,\$rowtotal).' |
|
</table> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<table class="LC_nested"> |
|
<tr class="LC_info_row"> |
|
<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>'. |
|
$item->{'print'}->('connfrom',$dom,$settings,\$rowtotal).' |
|
</table> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<table class="LC_nested"> |
|
<tr class="LC_info_row"> |
|
<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>'. |
|
$item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'login') { |
} elsif ($action eq 'login') { |
if ($numheaders == 4) { |
if ($numheaders == 4) { |
$output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal).' |
$output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal).' |
Line 3024 sub print_contacts {
|
Line 3063 sub print_contacts {
|
if (exists($settings->{'helpform'}{'maxsize'})) { |
if (exists($settings->{'helpform'}{'maxsize'})) { |
$maxsize = $settings->{'helpform'}{'maxsize'}; |
$maxsize = $settings->{'helpform'}{'maxsize'}; |
} else { |
} else { |
$maxsize = '1.0'; |
$maxsize = '1.0'; |
} |
} |
} else { |
} else { |
if (ref($fields) eq 'ARRAY') { |
if (ref($fields) eq 'ARRAY') { |
Line 3041 sub print_contacts {
|
Line 3080 sub print_contacts {
|
$to{'adminemail'} = $Apache::lonnet::perlvar{'lonAdmEMail'}; |
$to{'adminemail'} = $Apache::lonnet::perlvar{'lonAdmEMail'}; |
$checked{'errormail'}{'adminemail'} = ' checked="checked" '; |
$checked{'errormail'}{'adminemail'} = ' checked="checked" '; |
$checked{'packagesmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'packagesmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'requestsmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'requestsmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'updatesmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'updatesmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'idconflictsmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'idconflictsmail'}{'adminemail'} = ' checked="checked" '; |
Line 3117 sub print_contacts {
|
Line 3156 sub print_contacts {
|
if ($position eq 'middle') { |
if ($position eq 'middle') { |
my %choices; |
my %choices; |
$choices{'reporterrors'} = &mt('E-mail error reports to [_1]', |
$choices{'reporterrors'} = &mt('E-mail error reports to [_1]', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
&mt('LON-CAPA core group - MSU'),600,500)); |
&mt('LON-CAPA core group - MSU'),600,500)); |
$choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]', |
$choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
&mt('LON-CAPA core group - MSU'),600,500)); |
&mt('LON-CAPA core group - MSU'),600,500)); |
Line 3134 sub print_contacts {
|
Line 3173 sub print_contacts {
|
'<td>'.&mt('Extra helpdesk form fields:').'<br />'. |
'<td>'.&mt('Extra helpdesk form fields:').'<br />'. |
&mt('(e-mail, subject, and description always shown)'). |
&mt('(e-mail, subject, and description always shown)'). |
'</td><td class="LC_left_item">'; |
'</td><td class="LC_left_item">'; |
if ((ref($fields) eq 'ARRAY') && (ref($fieldtitles) eq 'HASH') && |
if ((ref($fields) eq 'ARRAY') && (ref($fieldtitles) eq 'HASH') && |
(ref($fieldoptions) eq 'HASH') && (ref($possoptions) eq 'HASH')) { |
(ref($fieldoptions) eq 'HASH') && (ref($possoptions) eq 'HASH')) { |
$datatable .= '<table><tr><th>'.&mt('Field').'</th><th>'.&mt('Status').'</th></tr>'; |
$datatable .= '<table><tr><th>'.&mt('Field').'</th><th>'.&mt('Status').'</th></tr>'; |
foreach my $field (@{$fields}) { |
foreach my $field (@{$fields}) { |
Line 3188 sub contacts_javascript {
|
Line 3227 sub contacts_javascript {
|
function screenshotSize(field) { |
function screenshotSize(field) { |
if (document.getElementById('help_screenshotsize')) { |
if (document.getElementById('help_screenshotsize')) { |
if (field.value == 'no') { |
if (field.value == 'no') { |
document.getElementById('help_screenshotsize').style.display="none"; |
document.getElementById('help_screenshotsize').style.display="none"; |
} else { |
} else { |
document.getElementById('help_screenshotsize').style.display=""; |
document.getElementById('help_screenshotsize').style.display=""; |
} |
} |
Line 3250 sub print_helpsettings {
|
Line 3289 sub print_helpsettings {
|
my $context = 'domprefs'; |
my $context = 'domprefs'; |
my $crstype = 'Course'; |
my $crstype = 'Course'; |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my @accesstypes = ('all','none'); |
my @accesstypes = ('all','dh','da','none'); |
my ($numstatustypes,@jsarray); |
my ($numstatustypes,@jsarray); |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
if (@{$types} > 0) { |
if (@{$types} > 0) { |
Line 3259 sub print_helpsettings {
|
Line 3298 sub print_helpsettings {
|
@jsarray = ('bystatus'); |
@jsarray = ('bystatus'); |
} |
} |
} |
} |
my %domhelpdesk = &Apache::lonnet::get_active_domroles($dom,['dh']); |
my %domhelpdesk = &Apache::lonnet::get_active_domroles($dom,['dh','da']); |
if (keys(%domhelpdesk)) { |
if (keys(%domhelpdesk)) { |
push(@accesstypes,('inc','exc')); |
push(@accesstypes,('inc','exc')); |
push(@jsarray,('notinc','notexc')); |
push(@jsarray,('notinc','notexc')); |
Line 3468 function helpdeskAccess(num) {
|
Line 3507 function helpdeskAccess(num) {
|
shown = Array('notinc'); |
shown = Array('notinc'); |
hidden = Array('notexc','bystatus'); |
hidden = Array('notexc','bystatus'); |
} |
} |
if (curraccess == 'all') { |
if ((curraccess == 'all') || (curraccess == 'dh') || (curraccess == 'da')) { |
hidden = Array('notinc','notexc','bystatus'); |
hidden = Array('notinc','notexc','bystatus'); |
} |
} |
} |
} |
Line 3497 function helpdeskAccess(num) {
|
Line 3536 function helpdeskAccess(num) {
|
function toggleHelpdeskItem(num,field) { |
function toggleHelpdeskItem(num,field) { |
if (document.getElementById('helproles_'+num+'_'+field)) { |
if (document.getElementById('helproles_'+num+'_'+field)) { |
if (document.getElementById('helproles_'+num+'_'+field).className.match(/(?:^|\\s)LC_hidden(?!\\S)/)) { |
if (document.getElementById('helproles_'+num+'_'+field).className.match(/(?:^|\\s)LC_hidden(?!\\S)/)) { |
document.getElementById('helproles_'+num+'_'+field).className = |
document.getElementById('helproles_'+num+'_'+field).className = |
document.getElementById('helproles_'+num+'_'+field).className.replace(/(?:^|\\s)LC_hidden(?!\\S)/g ,''); |
document.getElementById('helproles_'+num+'_'+field).className.replace(/(?:^|\\s)LC_hidden(?!\\S)/g ,''); |
if (document.getElementById('helproles_'+num+'_'+field+'_vis')) { |
if (document.getElementById('helproles_'+num+'_'+field+'_vis')) { |
document.getElementById('helproles_'+num+'_'+field+'_vis').value = '$html_js_lt{hide}'; |
document.getElementById('helproles_'+num+'_'+field+'_vis').value = '$html_js_lt{hide}'; |
Line 3525 sub helpdeskroles_access {
|
Line 3564 sub helpdeskroles_access {
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'rou' => 'Role usage', |
'rou' => 'Role usage', |
'whi' => 'Which helpdesk personnel may use this role?', |
'whi' => 'Which helpdesk personnel may use this role?', |
'all' => 'All', |
'all' => 'All with domain helpdesk or helpdesk assistant role', |
|
'dh' => 'All with domain helpdesk role', |
|
'da' => 'All with domain helpdesk assistant role', |
'none' => 'None', |
'none' => 'None', |
'status' => 'Determined based on institutional status', |
'status' => 'Determined based on institutional status', |
'inc' => 'Include all, but exclude specific personnel', |
'inc' => 'Include all, but exclude specific personnel', |
Line 3623 sub radiobutton_prefs {
|
Line 3664 sub radiobutton_prefs {
|
} else { |
} else { |
$datatable .= '<td class="LC_right_item">'; |
$datatable .= '<td class="LC_right_item">'; |
} |
} |
$datatable .= |
$datatable .= |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
'<label><input type="radio" name="'. |
'<label><input type="radio" name="'. |
$item.'" '.$checkedon{$item}.' value="1"'.$onclick.' />'.&mt('Yes'). |
$item.'" '.$checkedon{$item}.' value="1"'.$onclick.' />'.&mt('Yes'). |
Line 3726 sub print_ltitools {
|
Line 3767 sub print_ltitools {
|
if ($settings->{$item}->{'display'}->{'height'} =~ /^(\d+)$/) { |
if ($settings->{$item}->{'display'}->{'height'} =~ /^(\d+)$/) { |
$currdisp{'height'} = $1; |
$currdisp{'height'} = $1; |
} |
} |
|
$currdisp{'linktext'} = $settings->{$item}->{'display'}->{'linktext'}; |
|
$currdisp{'explanation'} = $settings->{$item}->{'display'}->{'explanation'}; |
} else { |
} else { |
$currdisp{'iframe'} = ' checked="checked"'; |
$currdisp{'iframe'} = ' checked="checked"'; |
} |
} |
Line 3739 sub print_ltitools {
|
Line 3782 sub print_ltitools {
|
'<input type="text" name="ltitools_'.$dimen.'_'.$i.'" size="5" value="'.$currdisp{$dimen}.'" /></label>'. |
'<input type="text" name="ltitools_'.$dimen.'_'.$i.'" size="5" value="'.$currdisp{$dimen}.'" /></label>'. |
(' 'x2); |
(' 'x2); |
} |
} |
|
$datatable .= '<br />'. |
|
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
|
'<input type="text" name="ltitools_linktext_'.$i.'" size="25" value="'.$currdisp{'linktext'}.'" /></label></div>'. |
|
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
|
'<textarea name="ltitools_explanation_'.$i.'" rows="5" cols="40">'.$currdisp{'explanation'}. |
|
'</textarea></div><div style=""></div><br />'; |
$datatable .= '<br />'; |
$datatable .= '<br />'; |
foreach my $extra ('passback','roster') { |
foreach my $extra ('passback','roster') { |
my $checkedon = ''; |
my $checkedon = ''; |
Line 3820 sub print_ltitools {
|
Line 3869 sub print_ltitools {
|
} |
} |
} |
} |
$datatable .= '<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
$datatable .= '<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
foreach my $item ('label','title','target') { |
foreach my $item ('label','title','target','linktext','explanation') { |
my $checked; |
my $checked; |
if ($courseconfig{$item}) { |
if ($courseconfig{$item}) { |
$checked = ' checked="checked"'; |
$checked = ' checked="checked"'; |
Line 3898 sub print_ltitools {
|
Line 3947 sub print_ltitools {
|
'<input type="text" name="ltitools_add_'.$dimen.'" size="5" /></label>'. |
'<input type="text" name="ltitools_add_'.$dimen.'" size="5" /></label>'. |
(' 'x2); |
(' 'x2); |
} |
} |
$datatable .= '<br />'; |
$datatable .= '<br />'. |
|
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
|
'<input type="text" name="ltitools_add_linktext" size="5" /></label></div>'. |
|
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
|
'<textarea name=ltitools_add_explanation" rows="5" cols="40"></textarea>'. |
|
'</div><div style=""></div><br />'; |
foreach my $extra ('passback','roster') { |
foreach my $extra ('passback','roster') { |
$datatable .= $lt{$extra}.' '. |
$datatable .= $lt{$extra}.' '. |
'<label><input type="radio" name="ltitools_add_'.$extra.'" value="1" />'. |
'<label><input type="radio" name="ltitools_add_'.$extra.'" value="1" />'. |
Line 3936 sub print_ltitools {
|
Line 3990 sub print_ltitools {
|
} |
} |
$datatable .= '</tr></table></fieldset>'. |
$datatable .= '</tr></table></fieldset>'. |
'<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
'<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
foreach my $item ('label','title','target') { |
foreach my $item ('label','title','target','linktext','explanation') { |
$datatable .= '<label>'. |
$datatable .= '<label>'. |
'<input type="checkbox" name="ltitools_courseconfig" value="'.$item.'" checked="checked" />'. |
'<input type="checkbox" name="ltitools_courseconfig" value="'.$item.'" checked="checked" />'. |
$lt{'crs'.$item}.'</label>'.(' ' x2)."\n"; |
$lt{'crs'.$item}.'</label>'.(' ' x2)."\n"; |
} |
} |
$datatable .= '</span></fieldset>'. |
$datatable .= '</span></fieldset>'. |
'<fieldset><legend>'.&mt('Custom items sent on launch').'</legend>'. |
'<fieldset><legend>'.&mt('Custom items sent on launch').'</legend>'. |
Line 3957 sub print_ltitools {
|
Line 4011 sub print_ltitools {
|
|
|
sub ltitools_names { |
sub ltitools_names { |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'title' => 'Title', |
'title' => 'Title', |
'version' => 'Version', |
'version' => 'Version', |
'msgtype' => 'Message Type', |
'msgtype' => 'Message Type', |
'url' => 'URL', |
'url' => 'URL', |
'key' => 'Key', |
'key' => 'Key', |
'secret' => 'Secret', |
'secret' => 'Secret', |
'icon' => 'Icon', |
'icon' => 'Icon', |
'user' => 'Username:domain', |
'user' => 'Username:domain', |
'fullname' => 'Full Name', |
'fullname' => 'Full Name', |
'firstname' => 'First Name', |
'firstname' => 'First Name', |
'lastname' => 'Last Name', |
'lastname' => 'Last Name', |
'email' => 'E-mail', |
'email' => 'E-mail', |
'roles' => 'Role', |
'roles' => 'Role', |
'window' => 'Window/Tab', |
'window' => 'Window/Tab', |
'iframe' => 'iFrame', |
'iframe' => 'iFrame', |
'height' => 'Height', |
'height' => 'Height', |
'width' => 'Width', |
'width' => 'Width', |
'passback' => 'Tool can return grades:', |
'linktext' => 'Default Link Text', |
'roster' => 'Tool can retrieve roster:', |
'explanation' => 'Default Explanation', |
'crstarget' => 'Display target', |
'passback' => 'Tool can return grades:', |
'crslabel' => 'Course label', |
'roster' => 'Tool can retrieve roster:', |
'crstitle' => 'Course title', |
'crstarget' => 'Display target', |
|
'crslabel' => 'Course label', |
|
'crstitle' => 'Course title', |
|
'crslinktext' => 'Link Text', |
|
'crsexplanation' => 'Explanation', |
); |
); |
return %lt; |
return %lt; |
} |
} |
Line 4009 sub print_coursedefaults {
|
Line 4067 sub print_coursedefaults {
|
'canuse_pdfforms' => 'off', |
'canuse_pdfforms' => 'off', |
'uselcmath' => 'on', |
'uselcmath' => 'on', |
'usejsme' => 'on', |
'usejsme' => 'on', |
'canclone' => 'none', |
'canclone' => 'none', |
); |
); |
@toggles = ('canuse_pdfforms','uselcmath','usejsme'); |
@toggles = ('canuse_pdfforms','uselcmath','usejsme'); |
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
Line 4048 sub print_coursedefaults {
|
Line 4106 sub print_coursedefaults {
|
$currcanclone = $settings->{'canclone'}; |
$currcanclone = $settings->{'canclone'}; |
} |
} |
} |
} |
} |
} |
foreach my $option (@cloneoptions) { |
foreach my $option (@cloneoptions) { |
my ($checked,$additional); |
my ($checked,$additional); |
if ($currcanclone eq $option) { |
if ($currcanclone eq $option) { |
Line 4117 sub print_coursedefaults {
|
Line 4175 sub print_coursedefaults {
|
foreach my $type (@types) { |
foreach my $type (@types) { |
if (ref($settings->{'postsubmit'}->{'timeout'}) eq 'HASH') { |
if (ref($settings->{'postsubmit'}->{'timeout'}) eq 'HASH') { |
if ($settings->{'postsubmit'}->{'timeout'}->{$type} =~ /^\d+$/) { |
if ($settings->{'postsubmit'}->{'timeout'}->{$type} =~ /^\d+$/) { |
$deftimeout{$type} = $settings->{'postsubmit'}->{'timeout'}->{$type}; |
$deftimeout{$type} = $settings->{'postsubmit'}->{'timeout'}->{$type}; |
} else { |
} else { |
$deftimeout{$type} = $staticdefaults{'postsubmit'}; |
$deftimeout{$type} = $staticdefaults{'postsubmit'}; |
} |
} |
Line 4233 sub print_coursedefaults {
|
Line 4291 sub print_coursedefaults {
|
foreach my $type (@types) { |
foreach my $type (@types) { |
$datatable .= '<td align="center">'.&mt($type).'<br />'. |
$datatable .= '<td align="center">'.&mt($type).'<br />'. |
'<input type="text" name="mysqltables_'.$type.'"'. |
'<input type="text" name="mysqltables_'.$type.'"'. |
' value="'.$currmysql{$type}.'" size="5" /></td>'; |
' value="'.$currmysql{$type}.'" size="8" /></td>'; |
} |
} |
$datatable .= '</tr></table></td></tr>'."\n"; |
$datatable .= '</tr></table></td></tr>'."\n"; |
$itemcount ++; |
$itemcount ++; |
Line 4655 sub print_ssl {
|
Line 4713 sub print_ssl {
|
my @domservers = &Apache::lonnet::get_servers($dom); |
my @domservers = &Apache::lonnet::get_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %altids = &id_for_thisdom(%servers); |
my %altids = &id_for_thisdom(%servers); |
if ($position eq 'middle') { |
if (($position eq 'connto') || ($position eq 'connfrom')) { |
|
my $legacy; |
|
unless (ref($settings) eq 'HASH') { |
|
my $name; |
|
if ($position eq 'connto') { |
|
$name = 'loncAllowInsecure'; |
|
} else { |
|
$name = 'londAllowInsecure'; |
|
} |
|
my $primarylibserv = &Apache::lonnet::domain($dom,'primary'); |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
if (($primarylibserv ne '') && (!grep(/^\Q$primarylibserv\E$/,@ids))) { |
|
my %what = ( |
|
$name => 1, |
|
); |
|
my ($result,$returnhash) = |
|
&Apache::lonnet::get_remote_globals($primarylibserv,\%what); |
|
if ($result eq 'ok') { |
|
if (ref($returnhash) eq 'HASH') { |
|
$legacy = $returnhash->{$name}; |
|
} |
|
} |
|
} else { |
|
$legacy = $Apache::lonnet::perlvar{$name}; |
|
} |
|
} |
foreach my $type ('dom','intdom','other') { |
foreach my $type ('dom','intdom','other') { |
my %checked; |
my %checked; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
Line 4682 sub print_ssl {
|
Line 4765 sub print_ssl {
|
unless ($skip) { |
unless ($skip) { |
$checked{'yes'} = ' checked="checked"'; |
$checked{'yes'} = ' checked="checked"'; |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{'connect'}) eq 'HASH') { |
if (ref($settings->{$position}) eq 'HASH') { |
if ($settings->{'connect'}->{$type} =~ /^(no|req)$/) { |
if ($settings->{$position}->{$type} =~ /^(no|req)$/) { |
$checked{$1} = $checked{'yes'}; |
$checked{$1} = $checked{'yes'}; |
delete($checked{'yes'}); |
delete($checked{'yes'}); |
} |
} |
} |
} |
|
} else { |
|
if ($legacy == 0) { |
|
$checked{'req'} = $checked{'yes'}; |
|
delete($checked{'yes'}); |
|
} |
} |
} |
foreach my $option ('no','yes','req') { |
foreach my $option ('no','yes','req') { |
$datatable .= '<span class="LC_nobreak"><label>'. |
$datatable .= '<span class="LC_nobreak"><label>'. |
'<input type="radio" name="connect_'.$type.'" '. |
'<input type="radio" name="'.$position.'_'.$type.'" '. |
'value="'.$option.'"'.$checked{$option}.' />'.$titles{$option}. |
'value="'.$option.'"'.$checked{$option}.' />'.$titles{$option}. |
'</label></span>'.(' 'x2); |
'</label></span>'.(' 'x2); |
} |
} |
Line 4722 sub ssl_titles {
|
Line 4810 sub ssl_titles {
|
dom => 'LON-CAPA servers/VMs from same domain', |
dom => 'LON-CAPA servers/VMs from same domain', |
intdom => 'LON-CAPA servers/VMs from same "internet" domain', |
intdom => 'LON-CAPA servers/VMs from same "internet" domain', |
other => 'External LON-CAPA servers/VMs', |
other => 'External LON-CAPA servers/VMs', |
connect => 'Connections to other servers', |
connto => 'Connections to other servers', |
|
connfrom => 'Connections from other servers', |
replication => 'Replicating content to other institutions', |
replication => 'Replicating content to other institutions', |
certreq => 'Client certificate required, but specific domains exempt', |
certreq => 'Client certificate required, but specific domains exempt', |
nocertreq => 'No client certificate required, except for specific domains', |
nocertreq => 'No client certificate required, except for specific domains', |
Line 4932 sub spares_row {
|
Line 5021 sub spares_row {
|
<span class="LC_nobreak">'. |
<span class="LC_nobreak">'. |
&mt('[_1] when busy, offloads to:' |
&mt('[_1] when busy, offloads to:' |
,'<b>'.$server.'</b>').'</span><br />'. |
,'<b>'.$server.'</b>').'</span><br />'. |
'<span class="LC_nobreak">'."\n". |
'<span class="LC_nobreak">'."\n". |
'<label><input type="checkbox" name="offloadnow" value="'.$server.'"'.$checkednow.' />'. |
'<label><input type="checkbox" name="offloadnow" value="'.$server.'"'.$checkednow.' />'. |
' '.&mt('Switch active users on next access').'</label></span>'. |
' '.&mt('Switch active users on next access').'</label></span>'. |
"\n"; |
"\n"; |
Line 5426 sub contact_titles {
|
Line 5515 sub contact_titles {
|
'errormail' => 'Error reports to be e-mailed to', |
'errormail' => 'Error reports to be e-mailed to', |
'packagesmail' => 'Package update alerts to be e-mailed to', |
'packagesmail' => 'Package update alerts to be e-mailed to', |
'helpdeskmail' => "Helpdesk requests for this domain's users", |
'helpdeskmail' => "Helpdesk requests for this domain's users", |
'otherdomsmail' => 'Helpdesk requests for other (unconfigured) domains', |
'otherdomsmail' => 'Helpdesk requests for other (unconfigured) domains', |
'lonstatusmail' => 'E-mail from nightly status check (warnings/errors)', |
'lonstatusmail' => 'E-mail from nightly status check (warnings/errors)', |
'requestsmail' => 'E-mail from course requests requiring approval', |
'requestsmail' => 'E-mail from course requests requiring approval', |
'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates', |
'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates', |
Line 5447 sub helpform_fields {
|
Line 5536 sub helpform_fields {
|
'cc' => 'Cc e-mail', |
'cc' => 'Cc e-mail', |
'course' => 'Course Details', |
'course' => 'Course Details', |
'section' => 'Sections', |
'section' => 'Sections', |
'screenshot' => 'File upload', |
'screenshot' => 'File upload', |
); |
); |
my @fields = ('username','phone','user','course','section','cc','screenshot'); |
my @fields = ('username','phone','user','course','section','cc','screenshot'); |
my %possoptions = ( |
my %possoptions = ( |
username => ['yes','no','req'], |
username => ['yes','no','req'], |
phone => ['yes','no','req'], |
phone => ['yes','no','req'], |
user => ['yes','no'], |
user => ['yes','no'], |
cc => ['yes','no'], |
cc => ['yes','no'], |
course => ['yes','no'], |
course => ['yes','no'], |
section => ['yes','no'], |
section => ['yes','no'], |
screenshot => ['yes','no'], |
screenshot => ['yes','no'], |
Line 6074 sub print_usermodification {
|
Line 6163 sub print_usermodification {
|
sub print_defaults { |
sub print_defaults { |
my ($position,$dom,$settings,$rowtotal) = @_; |
my ($position,$dom,$settings,$rowtotal) = @_; |
my $rownum = 0; |
my $rownum = 0; |
my ($datatable,$css_class); |
my ($datatable,$css_class,$titles); |
|
unless ($position eq 'bottom') { |
|
$titles = &defaults_titles($dom); |
|
} |
if ($position eq 'top') { |
if ($position eq 'top') { |
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def', |
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def', |
'datelocale_def','portal_def'); |
'datelocale_def','portal_def'); |
Line 6087 sub print_defaults {
|
Line 6179 sub print_defaults {
|
$defaults{$item} = $domdefaults{$item}; |
$defaults{$item} = $domdefaults{$item}; |
} |
} |
} |
} |
my $titles = &defaults_titles($dom); |
|
foreach my $item (@items) { |
foreach my $item (@items) { |
if ($rownum%2) { |
if ($rownum%2) { |
$css_class = ''; |
$css_class = ''; |
Line 6135 sub print_defaults {
|
Line 6226 sub print_defaults {
|
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
$rownum ++; |
$rownum ++; |
} |
} |
|
} elsif ($position eq 'middle') { |
|
my @items = ('intauth_cost','intauth_check','intauth_switch'); |
|
my %defaults; |
|
if (ref($settings) eq 'HASH') { |
|
%defaults = %{$settings}; |
|
if ($defaults{'intauth_cost'} !~ /^\d+$/) { |
|
$defaults{'intauth_cost'} = 10; |
|
} |
|
if ($defaults{'intauth_check'} !~ /^(0|1|2)$/) { |
|
$defaults{'intauth_check'} = 0; |
|
} |
|
if ($defaults{'intauth_switch'} !~ /^(0|1|2)$/) { |
|
$defaults{'intauth_switch'} = 0; |
|
} |
|
} else { |
|
%defaults = ( |
|
'intauth_cost' => 10, |
|
'intauth_check' => 0, |
|
'intauth_switch' => 0, |
|
); |
|
} |
|
foreach my $item (@items) { |
|
if ($rownum%2) { |
|
$css_class = ''; |
|
} else { |
|
$css_class = ' class="LC_odd_row" '; |
|
} |
|
$datatable .= '<tr'.$css_class.'>'. |
|
'<td><span class="LC_nobreak">'.$titles->{$item}. |
|
'</span></td><td class="LC_left_item" colspan="3">'; |
|
if ($item eq 'intauth_switch') { |
|
my @options = (0,1,2); |
|
my %optiondesc = &Apache::lonlocal::texthash ( |
|
0 => 'No', |
|
1 => 'Yes', |
|
2 => 'Yes, and copy existing passwd file to passwd.bak file', |
|
); |
|
$datatable .= '<table width="100%">'; |
|
foreach my $option (@options) { |
|
my $checked = ' '; |
|
if ($defaults{$item} eq $option) { |
|
$checked = ' checked="checked"'; |
|
} |
|
$datatable .= '<tr><td class="LC_left_item"><span class="LC_nobreak">'. |
|
'<label><input type="radio" name="'.$item. |
|
'" value="'.$option.'"'.$checked.' />'. |
|
$optiondesc{$option}.'</label></span></td></tr>'; |
|
} |
|
$datatable .= '</table>'; |
|
} elsif ($item eq 'intauth_check') { |
|
my @options = (0,1,2); |
|
my %optiondesc = &Apache::lonlocal::texthash ( |
|
0 => 'No', |
|
1 => 'Yes, allow login then update passwd file using default cost (if higher)', |
|
2 => 'Yes, disallow login if stored cost is less than domain default', |
|
); |
|
$datatable .= '<table wisth="100%">'; |
|
foreach my $option (@options) { |
|
my $checked = ' '; |
|
my $onclick; |
|
if ($defaults{$item} eq $option) { |
|
$checked = ' checked="checked"'; |
|
} |
|
if ($option == 2) { |
|
$onclick = ' onclick="javascript:warnIntAuth(this);"'; |
|
} |
|
$datatable .= '<tr><td class="LC_left_item"><span class="LC_nobreak">'. |
|
'<label><input type="radio" name="'.$item. |
|
'" value="'.$option.'"'.$checked.$onclick.' />'. |
|
$optiondesc{$option}.'</label></span></td></tr>'; |
|
} |
|
$datatable .= '</table>'; |
|
} else { |
|
$datatable .= '<input type="text" name="'.$item.'" value="'. |
|
$defaults{$item}.'" size="3" onblur="javascript:warnIntAuth(this);" />'; |
|
} |
|
$datatable .= '</td></tr>'; |
|
$rownum ++; |
|
} |
} else { |
} else { |
my (%defaults); |
my %defaults; |
if (ref($settings) eq 'HASH') { |
if (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') && |
(ref($settings->{'inststatusguest'}) eq 'ARRAY')) { |
(ref($settings->{'inststatusguest'}) eq 'ARRAY')) { |
Line 6231 sub defaults_titles {
|
Line 6401 sub defaults_titles {
|
'timezone_def' => 'Default timezone', |
'timezone_def' => 'Default timezone', |
'datelocale_def' => 'Default locale for dates', |
'datelocale_def' => 'Default locale for dates', |
'portal_def' => 'Portal/Default URL', |
'portal_def' => 'Portal/Default URL', |
|
'intauth_cost' => 'Encryption cost for bcrypt (positive integer)', |
|
'intauth_check' => 'Check bcrypt cost if authenticated', |
|
'intauth_switch' => 'Existing crypt-based switched to bcrypt on authentication', |
); |
); |
if ($dom) { |
if ($dom) { |
my $uprimary_id = &Apache::lonnet::domain($dom,'primary'); |
my $uprimary_id = &Apache::lonnet::domain($dom,'primary'); |
Line 6766 sub serverstatus_pages {
|
Line 6939 sub serverstatus_pages {
|
|
|
sub defaults_javascript { |
sub defaults_javascript { |
my ($settings) = @_; |
my ($settings) = @_; |
return unless (ref($settings) eq 'HASH'); |
my $intauthcheck = &mt('Warning: disallowing login for an authenticated user if the stored cost is less than the default will require a password reset by/for the user.'); |
|
my $intauthcost = &mt('Warning: bcrypt encryption cost for internal authentication must be an integer.'); |
|
&js_escape(\$intauthcheck); |
|
&js_escape(\$intauthcost); |
|
my $intauthjs = <<"ENDSCRIPT"; |
|
|
|
function warnIntAuth(field) { |
|
if (field.name == 'intauth_check') { |
|
if (field.value == '2') { |
|
alert('$intauthcheck'); |
|
} |
|
} |
|
if (field.name == 'intauth_cost') { |
|
field.value.replace(/\s/g,''); |
|
if (field.value != '') { |
|
var regexdigit=/^\\d+\$/; |
|
if (!regexdigit.test(field.value)) { |
|
alert('$intauthcost'); |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
|
|
ENDSCRIPT |
|
|
|
if (ref($settings) ne 'HASH') { |
|
return &Apache::lonhtmlcommon::scripttag($intauthjs); |
|
} |
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 6820 $jstext
|
Line 7021 $jstext
|
return; |
return; |
} |
} |
|
|
|
$intauthjs |
|
|
// ]]> |
// ]]> |
</script> |
</script> |
|
|
ENDSCRIPT |
ENDSCRIPT |
|
} else { |
|
return &Apache::lonhtmlcommon::scripttag($intauthjs); |
} |
} |
} |
} |
|
|
Line 7557 sub modify_login {
|
Line 7762 sub modify_login {
|
} elsif ($currheadtagurls{$lonhost}) { |
} elsif ($currheadtagurls{$lonhost}) { |
$loginhash{'login'}{'headtag'}{$lonhost}{'url'} = $currheadtagurls{$lonhost}; |
$loginhash{'login'}{'headtag'}{$lonhost}{'url'} = $currheadtagurls{$lonhost}; |
if ($currexempt{$lonhost}) { |
if ($currexempt{$lonhost}) { |
if ((!exists($possexempt{$lonhost})) || ($possexempt{$lonhost} ne $currexempt{$lonhost})) { |
if ((!exists($possexempt{$lonhost})) || ($possexempt{$lonhost} ne $currexempt{$lonhost})) { |
$changes{'headtag'}{$lonhost} = 1; |
$changes{'headtag'}{$lonhost} = 1; |
} |
} |
} elsif ($possexempt{$lonhost}) { |
} elsif ($possexempt{$lonhost}) { |
Line 7789 sub modify_login {
|
Line 7994 sub modify_login {
|
return $resulttext; |
return $resulttext; |
} |
} |
|
|
|
|
sub check_exempt_addresses { |
sub check_exempt_addresses { |
my ($iplist) = @_; |
my ($iplist) = @_; |
$iplist =~ s/^\s+//; |
$iplist =~ s/^\s+//; |
Line 8700 sub modify_quotas {
|
Line 8904 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 8869 sub modify_quotas {
|
Line 9073 sub modify_quotas {
|
} |
} |
} elsif ($confhash{'validation'}{'dc'} ne '') { |
} elsif ($confhash{'validation'}{'dc'} ne '') { |
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'}; |
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'}; |
} |
} |
} else { |
} else { |
if (ref($domconfig{'requestcourses'}) eq 'HASH') { |
if (ref($domconfig{'requestcourses'}) eq 'HASH') { |
if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') { |
if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') { |
Line 9275 sub process_textbook_image {
|
Line 9479 sub process_textbook_image {
|
sub modify_ltitools { |
sub modify_ltitools { |
my ($r,$dom,$action,$lastactref,%domconfig) = @_; |
my ($r,$dom,$action,$lastactref,%domconfig) = @_; |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my ($newid,@allpos,%changes,%confhash,$errors,$resulttext); |
my ($newid,@allpos,%changes,%confhash,%encconfig,$errors,$resulttext); |
my $confname = $dom.'-domainconfig'; |
my $confname = $dom.'-domainconfig'; |
my $servadm = $r->dir_config('lonAdmEMail'); |
my $servadm = $r->dir_config('lonAdmEMail'); |
my ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
my ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
Line 9300 sub modify_ltitools {
|
Line 9504 sub modify_ltitools {
|
foreach my $item ('title','url','key','secret') { |
foreach my $item ('title','url','key','secret') { |
$env{'form.ltitools_add_'.$item} =~ s/(`)/'/g; |
$env{'form.ltitools_add_'.$item} =~ s/(`)/'/g; |
if ($env{'form.ltitools_add_'.$item}) { |
if ($env{'form.ltitools_add_'.$item}) { |
$confhash{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
if (($item eq 'key') || ($item eq 'secret')) { |
|
$encconfig{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} else { |
|
$confhash{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} |
} |
} |
} |
} |
if ($env{'form.ltitools_add_version'} eq 'LTI-1p0') { |
if ($env{'form.ltitools_add_version'} eq 'LTI-1p0') { |
Line 9309 sub modify_ltitools {
|
Line 9517 sub modify_ltitools {
|
if ($env{'form.ltitools_add_msgtype'} eq 'basic-lti-launch-request') { |
if ($env{'form.ltitools_add_msgtype'} eq 'basic-lti-launch-request') { |
$confhash{$newid}{'msgtype'} = $env{'form.ltitools_add_msgtype'}; |
$confhash{$newid}{'msgtype'} = $env{'form.ltitools_add_msgtype'}; |
} |
} |
foreach my $item ('width','height') { |
foreach my $item ('width','height','linktext','explanation') { |
$env{'form.ltitools_add_'.$item} =~ s/^\s+//; |
$env{'form.ltitools_add_'.$item} =~ s/^\s+//; |
$env{'form.ltitools_add_'.$item} =~ s/\s+$//; |
$env{'form.ltitools_add_'.$item} =~ s/\s+$//; |
if ($env{'form.ltitools_add_'.$item} =~ /^\d+$/) { |
if (($item eq 'width') || ($item eq 'height')) { |
$confhash{$newid}{'display'}{$item} = $env{'form.ltitools_add_'.$item}; |
if ($env{'form.ltitools_add_'.$item} =~ /^\d+$/) { |
|
$confhash{$newid}{'display'}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} |
|
} else { |
|
if ($env{'form.ltitools_add_'.$item} ne '') { |
|
$confhash{$newid}{'display'}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} |
} |
} |
} |
} |
if ($env{'form.ltitools_add_target'} eq 'window') { |
if ($env{'form.ltitools_add_target'} eq 'window') { |
Line 9401 sub modify_ltitools {
|
Line 9615 sub modify_ltitools {
|
} else { |
} else { |
my $newpos = $env{'form.ltitools_'.$itemid}; |
my $newpos = $env{'form.ltitools_'.$itemid}; |
$newpos =~ s/\D+//g; |
$newpos =~ s/\D+//g; |
foreach my $item ('title','url','key','secret') { |
foreach my $item ('title','url') { |
$confhash{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
$confhash{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
if ($domconfig{$action}{$itemid}{$item} ne $confhash{$itemid}{$item}) { |
if ($domconfig{$action}{$itemid}{$item} ne $confhash{$itemid}{$item}) { |
$changes{$itemid} = 1; |
$changes{$itemid} = 1; |
} |
} |
} |
} |
|
foreach my $item ('key','secret') { |
|
$encconfig{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
|
if ($domconfig{$action}{$itemid}{$item} ne $encconfig{$itemid}{$item}) { |
|
$changes{$itemid} = 1; |
|
} |
|
} |
if ($env{'form.ltitools_version_'.$i} eq 'LTI-1p0') { |
if ($env{'form.ltitools_version_'.$i} eq 'LTI-1p0') { |
$confhash{$itemid}{'version'} = $env{'form.ltitools_version_'.$i}; |
$confhash{$itemid}{'version'} = $env{'form.ltitools_version_'.$i}; |
} |
} |
Line 9425 sub modify_ltitools {
|
Line 9645 sub modify_ltitools {
|
} else { |
} else { |
$changes{$itemid} = 1; |
$changes{$itemid} = 1; |
} |
} |
|
} elsif (ref($domconfig{$action}{$itemid}{'display'}) eq 'HASH') { |
|
if ($domconfig{$action}{$itemid}{'display'}{$size} ne '') { |
|
$changes{$itemid} = 1; |
|
} |
|
} |
|
} |
|
foreach my $item ('linktext','explanation') { |
|
$env{'form.ltitools_'.$item.'_'.$i} =~ s/^\s+//; |
|
$env{'form.ltitools_'.$item.'_'.$i} =~ s/\s+$//; |
|
if ($env{'form.ltitools_'.$item.'_'.$i} ne '') { |
|
$confhash{$itemid}{'display'}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
|
if (ref($domconfig{$action}{$itemid}{'display'}) eq 'HASH') { |
|
if ($domconfig{$action}{$itemid}{'display'}{$item} ne $confhash{$itemid}{'display'}{$item}) { |
|
$changes{$itemid} = 1; |
|
} |
|
} else { |
|
$changes{$itemid} = 1; |
|
} |
|
} elsif (ref($domconfig{$action}{$itemid}{'display'}) eq 'HASH') { |
|
if ($domconfig{$action}{$itemid}{'display'}{$item} ne '') { |
|
$changes{$itemid} = 1; |
|
} |
} |
} |
} |
} |
if ($env{'form.ltitools_target_'.$i} eq 'window') { |
if ($env{'form.ltitools_target_'.$i} eq 'window') { |
Line 9448 sub modify_ltitools {
|
Line 9690 sub modify_ltitools {
|
} |
} |
} |
} |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig_'.$i); |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig_'.$i); |
foreach my $item ('label','title','target') { |
foreach my $item ('label','title','target','linktext','explanation') { |
if (grep(/^\Q$item\E$/,@courseconfig)) { |
if (grep(/^\Q$item\E$/,@courseconfig)) { |
$confhash{$itemid}{'crsconf'}{$item} = 1; |
$confhash{$itemid}{'crsconf'}{$item} = 1; |
if (ref($domconfig{$action}{$itemid}{'crsconf'}) eq 'HASH') { |
if (ref($domconfig{$action}{$itemid}{'crsconf'}) eq 'HASH') { |
Line 9587 sub modify_ltitools {
|
Line 9829 sub modify_ltitools {
|
my $putresult = &Apache::lonnet::put_dom('configuration',\%ltitoolshash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%ltitoolshash, |
$dom); |
$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
|
my %ltienchash = ( |
|
$action => { %encconfig } |
|
); |
|
&Apache::lonnet::put_dom('encconfig',\%ltienchash,$dom); |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('ltitools',$dom,\%confhash,$cachetime); |
my %ltiall = %confhash; |
|
foreach my $id (keys(%ltiall)) { |
|
if (ref($encconfig{$id}) eq 'HASH') { |
|
foreach my $item ('key','secret') { |
|
$ltiall{$id}{$item} = $encconfig{$id}{$item}; |
|
} |
|
} |
|
} |
|
&Apache::lonnet::do_cache_new('ltitools',$dom,\%ltiall,$cachetime); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
$lastactref->{'ltitools'} = 1; |
$lastactref->{'ltitools'} = 1; |
} |
} |
Line 9613 sub modify_ltitools {
|
Line 9867 sub modify_ltitools {
|
$resulttext .= '</li><ul>'; |
$resulttext .= '</li><ul>'; |
my $position = $pos + 1; |
my $position = $pos + 1; |
$resulttext .= '<li>'.&mt('Order: [_1]',$position).'</li>'; |
$resulttext .= '<li>'.&mt('Order: [_1]',$position).'</li>'; |
foreach my $item ('version','msgtype','url','key') { |
foreach my $item ('version','msgtype','url') { |
if ($confhash{$itemid}{$item} ne '') { |
if ($confhash{$itemid}{$item} ne '') { |
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{$item}.'</li>'; |
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{$item}.'</li>'; |
} |
} |
} |
} |
if ($confhash{$itemid}{'secret'} ne '') { |
if ($encconfig{$itemid}{'key'} ne '') { |
|
$resulttext .= '<li>'.$lt{'key'}.': '.$encconfig{$itemid}{'key'}.'</li>'; |
|
} |
|
if ($encconfig{$itemid}{'secret'} ne '') { |
$resulttext .= '<li>'.$lt{'secret'}.': '; |
$resulttext .= '<li>'.$lt{'secret'}.': '; |
my $num = length($confhash{$itemid}{'secret'}); |
my $num = length($encconfig{$itemid}{'secret'}); |
$resulttext .= ('*'x$num).'</li>'; |
$resulttext .= ('*'x$num).'</li>'; |
} |
} |
$resulttext .= '<li>'.&mt('Configurable in course:'); |
$resulttext .= '<li>'.&mt('Configurable in course:'); |
my @possconfig = ('label','title','target'); |
my @possconfig = ('label','title','target','linktext','explanation'); |
my $numconfig = 0; |
my $numconfig = 0; |
if (ref($confhash{$itemid}{'crsconf'}) eq 'HASH') { |
if (ref($confhash{$itemid}{'crsconf'}) eq 'HASH') { |
foreach my $item (@possconfig) { |
foreach my $item (@possconfig) { |
if ($confhash{$itemid}{'crsconf'}{$item}) { |
if ($confhash{$itemid}{'crsconf'}{$item}) { |
$numconfig ++; |
$numconfig ++; |
$resulttext .= ' '.$lt{'crs'.$item}; |
$resulttext .= ' "'.$lt{'crs'.$item}.'"'; |
} |
} |
} |
} |
} |
} |
Line 9663 sub modify_ltitools {
|
Line 9920 sub modify_ltitools {
|
$displaylist =~ s/,$//; |
$displaylist =~ s/,$//; |
$resulttext .= '<li>'.$displaylist.'</li>'; |
$resulttext .= '<li>'.$displaylist.'</li>'; |
} |
} |
} |
foreach my $item ('linktext','explanation') { |
|
if ($confhash{$itemid}{'display'}{$item}) { |
|
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{'display'}{$item}.'</li>'; |
|
} |
|
} |
|
} |
if (ref($confhash{$itemid}{'fields'}) eq 'HASH') { |
if (ref($confhash{$itemid}{'fields'}) eq 'HASH') { |
my $fieldlist; |
my $fieldlist; |
foreach my $field (@allfields) { |
foreach my $field (@allfields) { |
Line 10159 sub modify_autocreate {
|
Line 10421 sub modify_autocreate {
|
} |
} |
|
|
sub modify_directorysrch { |
sub modify_directorysrch { |
my ($dom,%domconfig) = @_; |
my ($dom,$lastactref,%domconfig) = @_; |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my %currdirsrch; |
my %currdirsrch; |
if (ref($domconfig{'directorysrch'}) eq 'HASH') { |
if (ref($domconfig{'directorysrch'}) eq 'HASH') { |
Line 10170 sub modify_directorysrch {
|
Line 10432 sub modify_directorysrch {
|
my %title = ( available => 'Institutional directory search available', |
my %title = ( available => 'Institutional directory search available', |
localonly => 'Other domains can search institution', |
localonly => 'Other domains can search institution', |
lcavailable => 'LON-CAPA directory search available', |
lcavailable => 'LON-CAPA directory search available', |
lclocalonly => 'Other domains can search LON-CAPA domain', |
lclocalonly => 'Other domains can search LON-CAPA domain', |
searchby => 'Search types', |
searchby => 'Search types', |
searchtypes => 'Search latitude'); |
searchtypes => 'Search latitude'); |
my @offon = ('off','on'); |
my @offon = ('off','on'); |
Line 10264 sub modify_directorysrch {
|
Line 10526 sub modify_directorysrch {
|
} |
} |
} |
} |
if (exists($currdirsrch{'lcavailable'})) { |
if (exists($currdirsrch{'lcavailable'})) { |
if ($currdirsrch{'lcavailable'} ne $env{'form.dirsrch_domavailable'}) { |
if ($currdirsrch{'lcavailable'} ne $env{'form.dirsrch_domavailable'}) { |
$changes{'lcavailable'} = 1; |
$changes{'lcavailable'} = 1; |
} |
} |
} else { |
} else { |
if ($env{'form.dirsrch_lcavailable'} eq '1') { |
if ($env{'form.dirsrch_lcavailable'} eq '1') { |
$changes{'lcavailable'} = 1; |
$changes{'lcavailable'} = 1; |
} |
} |
} |
} |
if (exists($currdirsrch{'localonly'})) { |
if (exists($currdirsrch{'localonly'})) { |
if ($currdirsrch{'localonly'} ne $env{'form.dirsrch_instlocalonly'}) { |
if ($currdirsrch{'localonly'} ne $env{'form.dirsrch_instlocalonly'}) { |
$changes{'localonly'} = 1; |
$changes{'localonly'} = 1; |
} |
} |
} else { |
} else { |
if ($env{'form.dirsrch_instlocalonly'} eq '1') { |
if ($env{'form.dirsrch_instlocalonly'} eq '1') { |
$changes{'localonly'} = 1; |
$changes{'localonly'} = 1; |
} |
} |
} |
} |
if (exists($currdirsrch{'lclocalonly'})) { |
if (exists($currdirsrch{'lclocalonly'})) { |
if ($currdirsrch{'lclocalonly'} ne $env{'form.dirsrch_domlocalonly'}) { |
if ($currdirsrch{'lclocalonly'} ne $env{'form.dirsrch_domlocalonly'}) { |
$changes{'lclocalonly'} = 1; |
$changes{'lclocalonly'} = 1; |
} |
} |
} else { |
} else { |
if ($env{'form.dirsrch_domlocalonly'} eq '1') { |
if ($env{'form.dirsrch_domlocalonly'} eq '1') { |
$changes{'lclocalonly'} = 1; |
$changes{'lclocalonly'} = 1; |
Line 10303 sub modify_directorysrch {
|
Line 10565 sub modify_directorysrch {
|
} |
} |
if ($changes{'lclocalonly'}) { |
if ($changes{'lclocalonly'}) { |
$resulttext .= '<li>'.&mt("$title{'lclocalonly'} set to: $otherdoms[$env{'form.dirsrch_domlocalonly'}]").'</li>'; |
$resulttext .= '<li>'.&mt("$title{'lclocalonly'} set to: $otherdoms[$env{'form.dirsrch_domlocalonly'}]").'</li>'; |
} |
} |
if (ref($changes{'cansearch'}) eq 'ARRAY') { |
if (ref($changes{'cansearch'}) eq 'ARRAY') { |
my $chgtext; |
my $chgtext; |
if (ref($usertypes) eq 'HASH') { |
if (ref($usertypes) eq 'HASH') { |
Line 10353 sub modify_directorysrch {
|
Line 10615 sub modify_directorysrch {
|
$resulttext .= '<li>'.&mt($title{'searchtypes'}.' set to: "[_1]"',$chgtext).'</li>'; |
$resulttext .= '<li>'.&mt($title{'searchtypes'}.' set to: "[_1]"',$chgtext).'</li>'; |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
|
&Apache::lonnet::do_cache_new('directorysrch',$dom,$dirsrch_hash{'directorysrch'},3600); |
|
if (ref($lastactref) eq 'HASH') { |
|
$lastactref->{'directorysrch'} = 1; |
|
} |
} else { |
} else { |
$resulttext = &mt('No changes made to directory search settings'); |
$resulttext = &mt('No changes made to directory search settings'); |
} |
} |
Line 10386 sub modify_contacts {
|
Line 10652 sub modify_contacts {
|
} else { |
} else { |
$contacts_hash{contacts}{$type}{$item} = 0; |
$contacts_hash{contacts}{$type}{$item} = 0; |
} |
} |
} |
} |
$others{$type} = $env{'form.'.$type.'_others'}; |
$others{$type} = $env{'form.'.$type.'_others'}; |
$contacts_hash{contacts}{$type}{'others'} = $others{$type}; |
$contacts_hash{contacts}{$type}{'others'} = $others{$type}; |
if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) { |
if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) { |
Line 10444 sub modify_contacts {
|
Line 10710 sub modify_contacts {
|
if ($others{$type} ne $currsetting{$type}{'others'}) { |
if ($others{$type} ne $currsetting{$type}{'others'}) { |
push(@{$changes{$type}},'others'); |
push(@{$changes{$type}},'others'); |
} |
} |
if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) { |
if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) { |
if ($bcc{$type} ne $currsetting{$type}{'bcc'}) { |
if ($bcc{$type} ne $currsetting{$type}{'bcc'}) { |
push(@{$changes{$type}},'bcc'); |
push(@{$changes{$type}},'bcc'); |
} |
} |
Line 10522 sub modify_contacts {
|
Line 10788 sub modify_contacts {
|
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
foreach my $item (@toggles) { |
foreach my $item (@toggles) { |
if (($env{'form.'.$item} == 1) && ($currsetting{$item} == 0)) { |
if (($env{'form.'.$item} == 1) && ($currsetting{$item} == 0)) { |
Line 10553 sub modify_contacts {
|
Line 10819 sub modify_contacts {
|
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
if (ref($changes{$type}) eq 'ARRAY') { |
if (ref($changes{$type}) eq 'ARRAY') { |
if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) { |
if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) { |
$resulttext .= '<li>'.$titles->{$type}.' -- '.&mt('sent to').': '; |
$resulttext .= '<li>'.$titles->{$type}.' -- '.&mt('sent to').': '; |
} else { |
} else { |
$resulttext .= '<li>'.$titles->{$type}.': '; |
$resulttext .= '<li>'.$titles->{$type}.': '; |
} |
} |
Line 10572 sub modify_contacts {
|
Line 10838 sub modify_contacts {
|
if ($bcc{$type} ne '') { |
if ($bcc{$type} ne '') { |
my $bcctext; |
my $bcctext; |
if (@text) { |
if (@text) { |
$bcctext = ' '.&mt('with Bcc to'); |
$bcctext = ' '.&mt('with Bcc to'); |
} else { |
} else { |
$bcctext = '(Bcc)'; |
$bcctext = '(Bcc)'; |
} |
} |
Line 10580 sub modify_contacts {
|
Line 10846 sub modify_contacts {
|
} elsif (!@text) { |
} elsif (!@text) { |
$resulttext .= &mt('No one'); |
$resulttext .= &mt('No one'); |
} |
} |
if ($includestr{$type} ne '') { |
if ($includestr{$type} ne '') { |
if ($includeloc{$type} eq 'b') { |
if ($includeloc{$type} eq 'b') { |
$resulttext .= '<br />'.&mt('Text automatically added to e-mail body:').' '.$includestr{$type}; |
$resulttext .= '<br />'.&mt('Text automatically added to e-mail body:').' '.$includestr{$type}; |
} elsif ($includeloc{$type} eq 's') { |
} elsif ($includeloc{$type} eq 's') { |
Line 10618 sub modify_contacts {
|
Line 10884 sub modify_contacts {
|
next; |
next; |
} |
} |
if ($contacts_hash{'contacts'}{'helpform'}{$field} eq 'yes') { |
if ($contacts_hash{'contacts'}{'helpform'}{$field} eq 'yes') { |
push(@optional,$field); |
push(@optional,$field); |
} elsif ($contacts_hash{'contacts'}{'helpform'}{$field} eq 'no') { |
} elsif ($contacts_hash{'contacts'}{'helpform'}{$field} eq 'no') { |
push(@unused,$field); |
push(@unused,$field); |
} elsif ($contacts_hash{'contacts'}{'helpform'}{$field} eq 'req') { |
} elsif ($contacts_hash{'contacts'}{'helpform'}{$field} eq 'req') { |
push(@required,$field); |
push(@required,$field); |
} |
} |
} |
} |
if (@optional) { |
if (@optional) { |
Line 11678 sub modify_defaults {
|
Line 11944 sub modify_defaults {
|
my ($dom,$lastactref,%domconfig) = @_; |
my ($dom,$lastactref,%domconfig) = @_; |
my ($resulttext,$mailmsgtxt,%newvalues,%changes,@errors); |
my ($resulttext,$mailmsgtxt,%newvalues,%changes,@errors); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def','datelocale_def','portal_def'); |
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def','datelocale_def', |
|
'portal_def','intauth_cost','intauth_check','intauth_switch'); |
my @authtypes = ('internal','krb4','krb5','localauth'); |
my @authtypes = ('internal','krb4','krb5','localauth'); |
foreach my $item (@items) { |
foreach my $item (@items) { |
$newvalues{$item} = $env{'form.'.$item}; |
$newvalues{$item} = $env{'form.'.$item}; |
Line 11720 sub modify_defaults {
|
Line 11987 sub modify_defaults {
|
push(@errors,$item); |
push(@errors,$item); |
} |
} |
} |
} |
|
} elsif ($item eq 'intauth_cost') { |
|
if ($newvalues{$item} ne '') { |
|
if ($newvalues{$item} =~ /\D/) { |
|
push(@errors,$item); |
|
} |
|
} |
|
} elsif ($item eq 'intauth_check') { |
|
if ($newvalues{$item} ne '') { |
|
unless ($newvalues{$item} =~ /^(0|1|2)$/) { |
|
push(@errors,$item); |
|
} |
|
} |
|
} elsif ($item eq 'intauth_switch') { |
|
if ($newvalues{$item} ne '') { |
|
unless ($newvalues{$item} =~ /^(0|1|2)$/) { |
|
push(@errors,$item); |
|
} |
|
} |
} |
} |
if (grep(/^\Q$item\E$/,@errors)) { |
if (grep(/^\Q$item\E$/,@errors)) { |
$newvalues{$item} = $domdefaults{$item}; |
$newvalues{$item} = $domdefaults{$item}; |
Line 11874 sub modify_defaults {
|
Line 12159 sub modify_defaults {
|
localauth => 'loc', |
localauth => 'loc', |
); |
); |
$value = $authnames{$shortauth{$value}}; |
$value = $authnames{$shortauth{$value}}; |
|
} elsif ($item eq 'intauth_switch') { |
|
my %optiondesc = &Apache::lonlocal::texthash ( |
|
0 => 'No', |
|
1 => 'Yes', |
|
2 => 'Yes, and copy existing passwd file to passwd.bak file', |
|
); |
|
if ($value =~ /^(0|1|2)$/) { |
|
$value = $optiondesc{$value}; |
|
} else { |
|
$value = &mt('none -- defaults to No'); |
|
} |
|
} elsif ($item eq 'intauth_check') { |
|
my %optiondesc = &Apache::lonlocal::texthash ( |
|
0 => 'No', |
|
1 => 'Yes, allow login then update passwd file using default cost (if higher)', |
|
2 => 'Yes, disallow login if stored cost is less than domain default', |
|
); |
|
if ($value =~ /^(0|1|2)$/) { |
|
$value = $optiondesc{$value}; |
|
} else { |
|
$value = &mt('none -- defaults to No'); |
|
} |
} |
} |
$resulttext .= '<li>'.&mt('[_1] set to "[_2]"',$title->{$item},$value).'</li>'; |
$resulttext .= '<li>'.&mt('[_1] set to "[_2]"',$title->{$item},$value).'</li>'; |
$mailmsgtext .= "$title->{$item} set to $value\n"; |
$mailmsgtext .= "$title->{$item} set to $value\n"; |
Line 12458 sub modify_helpsettings {
|
Line 12765 sub modify_helpsettings {
|
my %existing=&Apache::lonnet::dump('roles',$dom,$confname,'rolesdef_'); |
my %existing=&Apache::lonnet::dump('roles',$dom,$confname,'rolesdef_'); |
my (@allpos,%newsettings,%changedprivs,$newrole); |
my (@allpos,%newsettings,%changedprivs,$newrole); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my @accesstypes = ('all','none','status','inc','exc'); |
my @accesstypes = ('all','dh','da','none','status','inc','exc'); |
my %domhelpdesk = &Apache::lonnet::get_active_domroles($dom,['dh']); |
my %domhelpdesk = &Apache::lonnet::get_active_domroles($dom,['dh','da']); |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
s => 'system', |
s => 'system', |
d => 'domain', |
d => 'domain', |
order => 'Display order', |
order => 'Display order', |
access => 'Role usage', |
access => 'Role usage', |
all => 'All', |
all => 'All with domain helpdesk or helpdesk assistant role', |
|
dh => 'All with domain helpdesk role', |
|
da => 'All with domain helpdesk assistant role', |
none => 'None', |
none => 'None', |
status => 'Determined based on institutional status', |
status => 'Determined based on institutional status', |
inc => 'Include all, but exclude specific personnel', |
inc => 'Include all, but exclude specific personnel', |
Line 12501 sub modify_helpsettings {
|
Line 12810 sub modify_helpsettings {
|
$identifier = 'custhelp'.$num; |
$identifier = 'custhelp'.$num; |
my %newprivs = &Apache::lonuserutils::custom_role_update($rolename,$identifier); |
my %newprivs = &Apache::lonuserutils::custom_role_update($rolename,$identifier); |
my %currprivs; |
my %currprivs; |
($currprivs{'s'},$currprivs{'d'},$currprivs{'c'}) = |
($currprivs{'s'},$currprivs{'d'},$currprivs{'c'}) = |
split(/\_/,$existing{'rolesdef_'.$rolename}); |
split(/\_/,$existing{'rolesdef_'.$rolename}); |
foreach my $level ('c','d','s') { |
foreach my $level ('c','d','s') { |
if ($newprivs{$level} ne $currprivs{$level}) { |
if ($newprivs{$level} ne $currprivs{$level}) { |
Line 12543 sub modify_helpsettings {
|
Line 12852 sub modify_helpsettings {
|
if ($access eq 'status') { |
if ($access eq 'status') { |
my @statuses = &Apache::loncommon::get_env_multiple('form.'.$prefix.'_status'); |
my @statuses = &Apache::loncommon::get_env_multiple('form.'.$prefix.'_status'); |
if (scalar(@statuses) == 0) { |
if (scalar(@statuses) == 0) { |
$helphash{'helpsettings'}{'adhoc'}{$rolename}{'access'} = 'none'; |
$helphash{'helpsettings'}{'adhoc'}{$rolename}{'access'} = 'none'; |
} else { |
} else { |
my (@shownstatus,$numtypes); |
my (@shownstatus,$numtypes); |
$helphash{'helpsettings'}{'adhoc'}{$rolename}{$access} = []; |
$helphash{'helpsettings'}{'adhoc'}{$rolename}{$access} = []; |
Line 12616 sub modify_helpsettings {
|
Line 12925 sub modify_helpsettings {
|
if (ref($current{'adhoc'}{$rolename}) eq 'HASH') { |
if (ref($current{'adhoc'}{$rolename}) eq 'HASH') { |
if ($current{'adhoc'}{$rolename}{'order'} ne $idx) { |
if ($current{'adhoc'}{$rolename}{'order'} ne $idx) { |
$changes{'customrole'}{$rolename}{'order'} = 1; |
$changes{'customrole'}{$rolename}{'order'} = 1; |
$newsettings{$rolename}{'order'} = $idx+1; |
$newsettings{$rolename}{'order'} = $idx+1; |
} |
} |
} |
} |
} |
} |
Line 12814 sub modify_coursedefaults {
|
Line 13123 sub modify_coursedefaults {
|
$changes{$item} = 1; |
$changes{$item} = 1; |
} |
} |
} elsif ($item =~ /^(uploadquota|mysqltables)_/) { |
} elsif ($item =~ /^(uploadquota|mysqltables)_/) { |
my $setting = $1; |
my $setting = $1; |
unless (($currdef eq '') && ($newdef == $staticdefaults{$setting})) { |
unless (($currdef eq '') && ($newdef == $staticdefaults{$setting})) { |
$changes{$setting} = 1; |
$changes{$setting} = 1; |
} |
} |
Line 12829 sub modify_coursedefaults {
|
Line 13138 sub modify_coursedefaults {
|
} |
} |
} |
} |
my $newclone; |
my $newclone; |
if ($env{'form.canclone'} =~ /^(none|domain|instcode)$/) { |
if ($env{'form.canclone'} =~ /^(none|domain|instcode)$/) { |
$newclone = $env{'form.canclone'}; |
$newclone = $env{'form.canclone'}; |
} |
} |
if ($newclone eq 'instcode') { |
if ($newclone eq 'instcode') { |
Line 12852 sub modify_coursedefaults {
|
Line 13161 sub modify_coursedefaults {
|
$newclone eq ''; |
$newclone eq ''; |
} |
} |
} elsif ($newclone ne '') { |
} elsif ($newclone ne '') { |
$defaultshash{'coursedefaults'}{'canclone'} = $newclone; |
$defaultshash{'coursedefaults'}{'canclone'} = $newclone; |
} |
} |
if ($newclone ne $currclone) { |
if ($newclone ne $currclone) { |
$changes{'canclone'} = 1; |
$changes{'canclone'} = 1; |
} |
} |
Line 12871 sub modify_coursedefaults {
|
Line 13180 sub modify_coursedefaults {
|
$defaultshash{'coursedefaults'}{'coursecredits'}{$type} = $credits{$type}; |
$defaultshash{'coursedefaults'}{'coursecredits'}{$type} = $credits{$type}; |
} |
} |
} else { |
} else { |
if ($env{'form.coursecredits'} eq '1') { |
if ($env{'form.coursecredits'} eq '1') { |
foreach my $type (@types) { |
foreach my $type (@types) { |
unless ($type eq 'community') { |
unless ($type eq 'community') { |
if ($domconfig{'coursedefaults'}{'coursecredits'}{$type} ne $credits{$type}) { |
if ($domconfig{'coursedefaults'}{'coursecredits'}{$type} ne $credits{$type}) { |
$changes{'coursecredits'} = 1; |
$changes{'coursecredits'} = 1; |
} |
} |
$defaultshash{'coursedefaults'}{'coursecredits'}{$type} = $credits{$type}; |
$defaultshash{'coursedefaults'}{'coursecredits'}{$type} = $credits{$type}; |
Line 12917 sub modify_coursedefaults {
|
Line 13226 sub modify_coursedefaults {
|
} |
} |
if (exists($currtimeout{$type})) { |
if (exists($currtimeout{$type})) { |
if ($timeout ne $currtimeout{$type}) { |
if ($timeout ne $currtimeout{$type}) { |
$changes{'postsubmit'} = 1; |
$changes{'postsubmit'} = 1; |
} |
} |
} elsif ($timeout ne '') { |
} elsif ($timeout ne '') { |
$changes{'postsubmit'} = 1; |
$changes{'postsubmit'} = 1; |
Line 12946 sub modify_coursedefaults {
|
Line 13255 sub modify_coursedefaults {
|
if ($changes{$item}) { |
if ($changes{$item}) { |
$domdefaults{$item}=$defaultshash{'coursedefaults'}{$item}; |
$domdefaults{$item}=$defaultshash{'coursedefaults'}{$item}; |
} |
} |
} |
} |
if ($changes{'coursecredits'}) { |
if ($changes{'coursecredits'}) { |
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') { |
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') { |
foreach my $type (keys(%{$defaultshash{'coursedefaults'}{'coursecredits'}})) { |
foreach my $type (keys(%{$defaultshash{'coursedefaults'}{'coursecredits'}})) { |
Line 13009 sub modify_coursedefaults {
|
Line 13318 sub modify_coursedefaults {
|
if ($env{'form.'.$item} eq '1') { |
if ($env{'form.'.$item} eq '1') { |
$resulttext .= '<li>'.&mt('Molecule editor uses JSME (HTML5), if supported by browser.').'</li>'; |
$resulttext .= '<li>'.&mt('Molecule editor uses JSME (HTML5), if supported by browser.').'</li>'; |
} else { |
} else { |
$resulttext .= '<li>'.&mt('Molecule editor uses JME (Java), if supported by client OS.').'</li>'; |
$resulttext .= '<li>'.&mt('Molecule editor uses JME (Java), if supported by client OS.').'</li>'; |
} |
} |
} elsif ($item eq 'anonsurvey_threshold') { |
} elsif ($item eq 'anonsurvey_threshold') { |
$resulttext .= '<li>'.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'</li>'; |
$resulttext .= '<li>'.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'</li>'; |
Line 13044 sub modify_coursedefaults {
|
Line 13353 sub modify_coursedefaults {
|
$resulttext .= '<li>'.&mt('Submit button(s) remain enabled on page after student makes submission.'); |
$resulttext .= '<li>'.&mt('Submit button(s) remain enabled on page after student makes submission.'); |
} else { |
} else { |
$resulttext .= '<li>'.&mt('Submit button(s) disabled on page after student makes submission').'; '; |
$resulttext .= '<li>'.&mt('Submit button(s) disabled on page after student makes submission').'; '; |
if (ref($defaultshash{'coursedefaults'}{'postsubmit'}) eq 'HASH') { |
if (ref($defaultshash{'coursedefaults'}{'postsubmit'}) eq 'HASH') { |
$resulttext .= &mt('durations:').'<ul>'; |
$resulttext .= &mt('durations:').'<ul>'; |
foreach my $type (@types) { |
foreach my $type (@types) { |
$resulttext .= '<li>'; |
$resulttext .= '<li>'; |
Line 13075 sub modify_coursedefaults {
|
Line 13384 sub modify_coursedefaults {
|
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
} |
} |
$resulttext .= '</li>'; |
$resulttext .= '</li>'; |
} |
} |
} elsif ($item eq 'coursecredits') { |
} elsif ($item eq 'coursecredits') { |
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') { |
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') { |
Line 13103 sub modify_coursedefaults {
|
Line 13412 sub modify_coursedefaults {
|
} elsif ($defaultshash{'coursedefaults'}{'canclone'} eq 'domain') { |
} elsif ($defaultshash{'coursedefaults'}{'canclone'} eq 'domain') { |
$resulttext .= '<li>'.&mt('By default, a course requester can clone any course from his/her domain.').'</li>'; |
$resulttext .= '<li>'.&mt('By default, a course requester can clone any course from his/her domain.').'</li>'; |
} else { |
} else { |
$resulttext .= '<li>'.&mt('By default, only course owner and coordinators may clone a course.').'</li>'; |
$resulttext .= '<li>'.&mt('By default, only course owner and coordinators may clone a course.').'</li>'; |
} |
} |
} |
} |
} |
} |
Line 13558 sub modify_usersessions {
|
Line 13867 sub modify_usersessions {
|
} |
} |
} |
} |
unless ($changes{'offloadnow'}) { |
unless ($changes{'offloadnow'}) { |
foreach my $lonhost (keys(%{$defaultshash{'usersessions'}{'offloadnow'}})) { |
foreach my $lonhost (keys(%{$defaultshash{'usersessions'}{'offloadnow'}})) { |
unless ($domconfig{'usersessions'}{'offloadnow'}{$lonhost}) { |
unless ($domconfig{'usersessions'}{'offloadnow'}{$lonhost}) { |
$changes{'offloadnow'} = 1; |
$changes{'offloadnow'} = 1; |
last; |
last; |
Line 13589 sub modify_usersessions {
|
Line 13898 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); |
|
&Apache::lonnet::do_cache_new('usersessions',$dom,$defaultshash{'usersessions'},3600); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
$lastactref->{'domdefaults'} = 1; |
$lastactref->{'domdefaults'} = 1; |
|
$lastactref->{'usersessions'} = 1; |
} |
} |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
my %lt = &usersession_titles(); |
my %lt = &usersession_titles(); |
Line 13691 sub modify_ssl {
|
Line 14002 sub modify_ssl {
|
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my (%defaultshash,%changes); |
my (%defaultshash,%changes); |
my $action = 'ssl'; |
my $action = 'ssl'; |
my @prefixes = ('connect','replication'); |
my @prefixes = ('connto','connfrom','replication'); |
foreach my $prefix (@prefixes) { |
foreach my $prefix (@prefixes) { |
$defaultshash{$action}{$prefix} = {}; |
$defaultshash{$action}{$prefix} = {}; |
} |
} |
Line 13701 sub modify_ssl {
|
Line 14012 sub modify_ssl {
|
my @reptypes = ('certreq','nocertreq'); |
my @reptypes = ('certreq','nocertreq'); |
my @connecttypes = ('dom','intdom','other'); |
my @connecttypes = ('dom','intdom','other'); |
my %types = ( |
my %types = ( |
connect => \@connecttypes, |
connto => \@connecttypes, |
replication => \@reptypes, |
connfrom => \@connecttypes, |
|
replication => \@reptypes, |
); |
); |
foreach my $prefix (sort(keys(%types))) { |
foreach my $prefix (sort(keys(%types))) { |
foreach my $type (@{$types{$prefix}}) { |
foreach my $type (@{$types{$prefix}}) { |
if ($prefix eq 'connect') { |
if (($prefix eq 'connto') || ($prefix eq 'connfrom')) { |
my $value = 'yes'; |
my $value = 'yes'; |
if ($env{'form.'.$prefix.'_'.$type} =~ /^(no|req)$/) { |
if ($env{'form.'.$prefix.'_'.$type} =~ /^(no|req)$/) { |
$value = $env{'form.'.$prefix.'_'.$type}; |
$value = $env{'form.'.$prefix.'_'.$type}; |
Line 13795 sub modify_ssl {
|
Line 14107 sub modify_ssl {
|
if (ref($defaultshash{$action}{'replication'}) eq 'HASH') { |
if (ref($defaultshash{$action}{'replication'}) eq 'HASH') { |
$domdefaults{'replication'} = $defaultshash{$action}{'replication'}; |
$domdefaults{'replication'} = $defaultshash{$action}{'replication'}; |
} |
} |
if (ref($defaultshash{$action}{'connect'}) eq 'HASH') { |
if (ref($defaultshash{$action}{'connto'}) eq 'HASH') { |
$domdefaults{'connect'} = $domconfig{$action}{'connect'}; |
$domdefaults{'connto'} = $domconfig{$action}{'connto'}; |
|
} |
|
if (ref($defaultshash{$action}{'connfrom'}) eq 'HASH') { |
|
$domdefaults{'connfrom'} = $domconfig{$action}{'connfrom'}; |
} |
} |
} |
} |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
Line 13815 sub modify_ssl {
|
Line 14130 sub modify_ssl {
|
my $newvalue; |
my $newvalue; |
if (ref($defaultshash{$action}) eq 'HASH') { |
if (ref($defaultshash{$action}) eq 'HASH') { |
if (ref($defaultshash{$action}{$prefix})) { |
if (ref($defaultshash{$action}{$prefix})) { |
if ($prefix eq 'connect') { |
if (($prefix eq 'connto') || ($prefix eq 'connfrom')) { |
$newvalue = $titles{$defaultshash{$action}{$prefix}{$type}}; |
$newvalue = $titles{$defaultshash{$action}{$prefix}{$type}}; |
} elsif (ref($defaultshash{$action}{$prefix}{$type}) eq 'ARRAY') { |
} elsif (ref($defaultshash{$action}{$prefix}{$type}) eq 'ARRAY') { |
if (@{$defaultshash{$action}{$prefix}{$type}} > 0) { |
if (@{$defaultshash{$action}{$prefix}{$type}} > 0) { |
Line 14076 sub modify_loadbalancing {
|
Line 14391 sub modify_loadbalancing {
|
} |
} |
if ($rule eq 'specific') { |
if ($rule eq 'specific') { |
my $specifiedhost = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type}; |
my $specifiedhost = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type}; |
if (exists($servers{$specifiedhost})) { |
if (exists($servers{$specifiedhost})) { |
$rule = $specifiedhost; |
$rule = $specifiedhost; |
} |
} |
} |
} |
Line 14152 sub modify_loadbalancing {
|
Line 14467 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') { |
Line 14879 function updateCaptcha(caller,context) {
|
Line 15194 function updateCaptcha(caller,context) {
|
privtext.innerHTML = "$lt{'priv'}"; |
privtext.innerHTML = "$lt{'priv'}"; |
versionitem.type = 'text'; |
versionitem.type = 'text'; |
versionitem.size = '3'; |
versionitem.size = '3'; |
versiontext.innerHTML = "$lt{'ver'}"; |
versiontext.innerHTML = "$lt{'ver'}"; |
} else { |
} else { |
pubitem.type = 'hidden'; |
pubitem.type = 'hidden'; |
privitem.type = 'hidden'; |
privitem.type = 'hidden'; |
Line 14952 sub captcha_phrases {
|
Line 15267 sub captcha_phrases {
|
original => 'original (CAPTCHA)', |
original => 'original (CAPTCHA)', |
recaptcha => 'successor (ReCAPTCHA)', |
recaptcha => 'successor (ReCAPTCHA)', |
notused => 'unused', |
notused => 'unused', |
ver => 'ReCAPTCHA version (1 or 2)', |
ver => 'ReCAPTCHA version (1 or 2)', |
); |
); |
} |
} |
|
|
Line 14962 sub devalidate_remote_domconfs {
|
Line 15277 sub devalidate_remote_domconfs {
|
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %thismachine; |
my %thismachine; |
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
my @posscached = ('domainconfig','domdefaults','ltitools'); |
my @posscached = ('domainconfig','domdefaults','ltitools','usersessions','directorysrch'); |
if (keys(%servers)) { |
if (keys(%servers)) { |
foreach my $server (keys(%servers)) { |
foreach my $server (keys(%servers)) { |
next if ($thismachine{$server}); |
next if ($thismachine{$server}); |