version 1.160.6.118.2.5, 2022/02/21 05:31:41
|
version 1.160.6.118.2.9, 2022/08/30 20:03:05
|
Line 219 sub handler {
|
Line 219 sub handler {
|
'coursedefaults','usersessions','loadbalancing', |
'coursedefaults','usersessions','loadbalancing', |
'requestauthor','selfenrollment','inststatus', |
'requestauthor','selfenrollment','inststatus', |
'passwords','ltitools','ltisec','wafproxy','ipaccess'],$dom); |
'passwords','ltitools','ltisec','wafproxy','ipaccess'],$dom); |
|
my %encconfig = |
|
&Apache::lonnet::get_dom('encconfig',['ltitools','linkprot'],$dom,undef,1); |
if (ref($domconfig{'ltitools'}) eq 'HASH') { |
if (ref($domconfig{'ltitools'}) eq 'HASH') { |
my %encconfig = |
|
&Apache::lonnet::get_dom('encconfig',['ltitools','linkprot'],$dom,undef,1); |
|
if (ref($encconfig{'ltitools'}) eq 'HASH') { |
if (ref($encconfig{'ltitools'}) eq 'HASH') { |
foreach my $id (keys(%{$domconfig{'ltitools'}})) { |
foreach my $id (keys(%{$domconfig{'ltitools'}})) { |
if (ref($domconfig{'ltitools'}{$id}) eq 'HASH') { |
if (ref($domconfig{'ltitools'}{$id}) eq 'HASH') { |
Line 298 sub handler {
|
Line 298 sub handler {
|
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value'}, |
col2 => 'Value'}, |
{col1 => 'Institutional user types', |
{col1 => 'Institutional user types', |
col2 => 'Name displayed'}], |
col2 => 'Name displayed'}, |
|
{col1 => 'Mapping for missing usernames via standard log-in', |
|
col2 => 'Rules in use'}], |
print => \&print_defaults, |
print => \&print_defaults, |
modify => \&modify_defaults, |
modify => \&modify_defaults, |
}, |
}, |
Line 881 sub print_config_box {
|
Line 883 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 'contacts') || ($action eq 'passwords') || ($action eq 'lti')) { |
($action eq 'contacts') || ($action eq 'passwords') || |
|
($action eq 'defaults') || ($action eq 'lti')) { |
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 935 sub print_config_box {
|
Line 938 sub print_config_box {
|
} |
} |
$rowtotal ++; |
$rowtotal ++; |
} elsif (($action eq 'usermodification') || ($action eq 'coursedefaults') || |
} elsif (($action eq 'usermodification') || ($action eq 'coursedefaults') || |
($action eq 'defaults') || ($action eq 'directorysrch') || |
($action eq 'directorysrch') || ($action eq 'helpsettings') || |
($action eq 'helpsettings') || ($action eq 'wafproxy')) { |
($action eq 'wafproxy')) { |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'scantron') { |
} elsif ($action eq 'scantron') { |
$output .= $item->{'print'}->($r,'bottom',$dom,$confname,$settings,\$rowtotal); |
$output .= $item->{'print'}->($r,'bottom',$dom,$confname,$settings,\$rowtotal); |
Line 1468 sub print_login {
|
Line 1471 sub print_login {
|
'<table><tr><th>'.$choices{'hostid'}.'</th>'. |
'<table><tr><th>'.$choices{'hostid'}.'</th>'. |
'<th>'.$choices{'samllanding'}.'</th>'. |
'<th>'.$choices{'samllanding'}.'</th>'. |
'<th>'.$choices{'samloptions'}.'</th></tr>'."\n"; |
'<th>'.$choices{'samloptions'}.'</th></tr>'."\n"; |
my (%saml,%samltext,%samlimg,%samlalt,%samlurl,%samltitle,%samlnotsso,%styleon,%styleoff); |
my (%saml,%samltext,%samlimg,%samlalt,%samlurl,%samltitle,%samlwindow,%samlnotsso,%styleon,%styleoff); |
foreach my $lonhost (keys(%domservers)) { |
foreach my $lonhost (keys(%domservers)) { |
$samlurl{$lonhost} = '/adm/sso'; |
$samlurl{$lonhost} = '/adm/sso'; |
$styleon{$lonhost} = 'display:none'; |
$styleon{$lonhost} = 'display:none'; |
Line 1483 sub print_login {
|
Line 1486 sub print_login {
|
$samlalt{$lonhost} = $settings->{'saml'}{$lonhost}{'alt'}; |
$samlalt{$lonhost} = $settings->{'saml'}{$lonhost}{'alt'}; |
$samlurl{$lonhost} = $settings->{'saml'}{$lonhost}{'url'}; |
$samlurl{$lonhost} = $settings->{'saml'}{$lonhost}{'url'}; |
$samltitle{$lonhost} = $settings->{'saml'}{$lonhost}{'title'}; |
$samltitle{$lonhost} = $settings->{'saml'}{$lonhost}{'title'}; |
|
$samlwindow{$lonhost} = $settings->{'saml'}{$lonhost}{'window'}; |
$samlnotsso{$lonhost} = $settings->{'saml'}{$lonhost}{'notsso'}; |
$samlnotsso{$lonhost} = $settings->{'saml'}{$lonhost}{'notsso'}; |
$styleon{$lonhost} = ''; |
$styleon{$lonhost} = ''; |
$styleoff{$lonhost} = 'display:none'; |
$styleoff{$lonhost} = 'display:none'; |
Line 1500 sub print_login {
|
Line 1504 sub print_login {
|
$samlon = $samloff; |
$samlon = $samloff; |
$samloff = ' '; |
$samloff = ' '; |
} |
} |
|
my $samlwinon = ''; |
|
my $samlwinoff = ' checked="checked"'; |
|
if ($samlwindow{$lonhost}) { |
|
$samlwinon = $samlwinoff; |
|
$samlwinoff = ''; |
|
} |
my $css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $css_class = $itemcount%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'><td><span class="LC_nobreak">'.$domservers{$lonhost}.'</span></td>'. |
$datatable .= '<tr'.$css_class.'><td><span class="LC_nobreak">'.$domservers{$lonhost}.'</span></td>'. |
'<td><span class="LC_nobreak"><label><input type="radio" name="saml_'.$lonhost.'"'.$samloff. |
'<td><span class="LC_nobreak"><label><input type="radio" name="saml_'.$lonhost.'"'.$samloff. |
Line 1509 sub print_login {
|
Line 1519 sub print_login {
|
'onclick="toggleSamlOptions(this.form,'."'$lonhost'".');" value="1" />'. |
'onclick="toggleSamlOptions(this.form,'."'$lonhost'".');" value="1" />'. |
&mt('Yes').'</label></span></td>'. |
&mt('Yes').'</label></span></td>'. |
'<td id="samloptionson_'.$lonhost.'" style="'.$styleon{$lonhost}.'" width="100%">'. |
'<td id="samloptionson_'.$lonhost.'" style="'.$styleon{$lonhost}.'" width="100%">'. |
'<table><tr><th colspan="5" align="center">'.&mt('SSO').'</th><th align="center">'. |
'<table width="100%"><tr><th colspan="3" align="center">'.&mt('SSO').'</th></tr>'. |
'<span class="LC_nobreak">'.&mt('Non-SSO').'</span></th></tr>'. |
|
'<tr><th>'.&mt('Text').'</th><th>'.&mt('Image').'</th>'. |
'<tr><th>'.&mt('Text').'</th><th>'.&mt('Image').'</th>'. |
'<th>'.&mt('Alt Text').'</th><th>'.&mt('URL').'</th>'. |
'<th>'.&mt('Alt Text').'</th></tr>'. |
'<th>'.&mt('Tool Tip').'</th><th>'.&mt('Text').'</th></tr>'. |
'<tr'.$css_class.'><td><input type="text" name="saml_text_'.$lonhost.'" size="20" value="'. |
'<tr'.$css_class.'><td><input type="text" name="saml_text_'.$lonhost.'" size="8" value="'. |
|
$samltext{$lonhost}.'" /></td><td>'; |
$samltext{$lonhost}.'" /></td><td>'; |
if ($samlimg{$lonhost}) { |
if ($samlimg{$lonhost}) { |
$datatable .= '<img src="'.$samlimg{$lonhost}.'" /><br />'. |
$datatable .= '<img src="'.$samlimg{$lonhost}.'" /><br />'. |
Line 1531 sub print_login {
|
Line 1539 sub print_login {
|
$datatable .= '<input type="file" name="saml_img_'.$lonhost.'" />'; |
$datatable .= '<input type="file" name="saml_img_'.$lonhost.'" />'; |
} |
} |
$datatable .= '</td>'. |
$datatable .= '</td>'. |
'<td><input type="text" name="saml_alt_'.$lonhost.'" size="20" '. |
'<td><input type="text" name="saml_alt_'.$lonhost.'" size="25" '. |
'value="'.$samlalt{$lonhost}.'" /></td>'. |
'value="'.$samlalt{$lonhost}.'" /></td></tr></table><br />'. |
'<td><input type="text" name="saml_url_'.$lonhost.'" size="8" '. |
'<table width="100%"><tr><th colspan="3" align="center">'.&mt('SSO').'</th><th align="center">'. |
|
'<span class="LC_nobreak">'.&mt('Non-SSO').'</span></th></tr>'. |
|
'<tr><th>'.&mt('URL').'</th><th>'.&mt('Tool Tip').'</th>'. |
|
'<th>'.&mt('Pop-up if iframe').'</th><th>'.&mt('Text').'</th></tr>'. |
|
'<tr'.$css_class.'>'. |
|
'<td><input type="text" name="saml_url_'.$lonhost.'" size="30" '. |
'value="'.$samlurl{$lonhost}.'" /></td>'. |
'value="'.$samlurl{$lonhost}.'" /></td>'. |
'<td><textarea name="saml_title_'.$lonhost.'" rows="3" cols="15">'. |
'<td><textarea name="saml_title_'.$lonhost.'" rows="3" cols="20">'. |
$samltitle{$lonhost}.'</textarea></td>'. |
$samltitle{$lonhost}.'</textarea></td>'. |
'<td><input type="text" name="saml_notsso_'.$lonhost.'" size="8" '. |
'<td><label><input type="radio" name="saml_window_'.$lonhost.'" value=""'.$samlwinoff.'>'. |
|
&mt('No').'</label>'.(' 'x2).'<label><input type="radio" '. |
|
'name="saml_window_'.$lonhost.'" value="1"'.$samlwinon.'>'.&mt('Yes').'</label></td>'. |
|
'<td><input type="text" name="saml_notsso_'.$lonhost.'" size="12" '. |
'value="'.$samlnotsso{$lonhost}.'" /></td></tr>'. |
'value="'.$samlnotsso{$lonhost}.'" /></td></tr>'. |
'</table></td>'. |
'</table></td>'. |
'<td id="samloptionsoff_'.$lonhost.'" style="'.$styleoff{$lonhost}.'" width="100%"> </td></tr>'; |
'<td id="samloptionsoff_'.$lonhost.'" style="'.$styleoff{$lonhost}.'" width="100%"> </td></tr>'; |
Line 3155 sub lti_toggle_js {
|
Line 3171 sub lti_toggle_js {
|
my %servers = &Apache::lonnet::get_servers($dom,'library'); |
my %servers = &Apache::lonnet::get_servers($dom,'library'); |
my $primary = &Apache::lonnet::domain($dom,'primary'); |
my $primary = &Apache::lonnet::domain($dom,'primary'); |
my $course_servers = "'".join("','",keys(%servers))."'"; |
my $course_servers = "'".join("','",keys(%servers))."'"; |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
function toggleLTIEncKey(form) { |
function toggleLTIEncKey(form) { |
var shownhosts = new Array(); |
var shownhosts = new Array(); |
var hiddenhosts = new Array(); |
var hiddenhosts = new Array(); |
Line 5368 sub print_coursedefaults {
|
Line 5387 sub print_coursedefaults {
|
postsubmit => 'Disable submit button/keypress following student submission', |
postsubmit => 'Disable submit button/keypress following student submission', |
canclone => "People who may clone a course (besides course's owner and coordinators)", |
canclone => "People who may clone a course (besides course's owner and coordinators)", |
mysqltables => 'Lifetime (s) of "Temporary" MySQL tables (student performance data) on homeserver', |
mysqltables => 'Lifetime (s) of "Temporary" MySQL tables (student performance data) on homeserver', |
); |
|
ltiauth => 'Student username in LTI launch of deep-linked URL can be accepted without re-authentication', |
ltiauth => 'Student username in LTI launch of deep-linked URL can be accepted without re-authentication', |
|
); |
my %staticdefaults = ( |
my %staticdefaults = ( |
anonsurvey_threshold => 10, |
anonsurvey_threshold => 10, |
uploadquota => 500, |
uploadquota => 500, |
Line 8310 sub user_formats_row {
|
Line 8329 sub user_formats_row {
|
'username' => 'new usernames', |
'username' => 'new usernames', |
'id' => 'IDs', |
'id' => 'IDs', |
); |
); |
unless ($type eq 'email') { |
unless (($type eq 'email') || ($type eq 'unamemap')) { |
my $css_class = $rowcount%2?' class="LC_odd_row"':''; |
my $css_class = $rowcount%2?' class="LC_odd_row"':''; |
$output = '<tr '.$css_class.'>'. |
$output = '<tr '.$css_class.'>'. |
'<td><span class="LC_nobreak">'. |
'<td><span class="LC_nobreak">'. |
Line 8365 sub user_formats_row {
|
Line 8384 sub user_formats_row {
|
} elsif ($colsleft == 1) { |
} elsif ($colsleft == 1) { |
$output .= '<td class="LC_left_item"> </td>'; |
$output .= '<td class="LC_left_item"> </td>'; |
} |
} |
$output .= '</tr></table>'; |
$output .= '</tr>'; |
unless ($type eq 'email') { |
unless (($type eq 'email') || ($type eq 'unamemap')) { |
$output .= '</td></tr>'; |
$output .= '</table></td></tr>'; |
} |
} |
return $output; |
return $output; |
} |
} |
Line 8508 sub print_defaults {
|
Line 8527 sub print_defaults {
|
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
$rownum ++; |
$rownum ++; |
} |
} |
} else { |
} elsif ($position eq 'middle') { |
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')) { |
Line 8558 sub print_defaults {
|
Line 8577 sub print_defaults {
|
$rownum ++; |
$rownum ++; |
} |
} |
} |
} |
|
} else { |
|
my ($unamemaprules,$ruleorder) = |
|
&Apache::lonnet::inst_userrules($dom,'unamemap'); |
|
$css_class = $rownum%2?' class="LC_odd_row"':''; |
|
if ((ref($unamemaprules) eq 'HASH') && (ref($ruleorder) eq 'ARRAY')) { |
|
my $numinrow = 2; |
|
$datatable .= '<tr'.$css_class.'><td>'.&mt('Available conversions').'</td><td><table>'. |
|
&user_formats_row('unamemap',$settings,$unamemaprules, |
|
$ruleorder,$numinrow). |
|
'</table></td></tr>'; |
|
} |
|
if ($datatable eq '') { |
|
$datatable .= '<tr'.$css_class.'><td colspan="2">'. |
|
&mt('No rules set for domain in customized localenroll.pm'). |
|
'</td></tr>'; |
|
} |
} |
} |
$$rowtotal += $rownum; |
$$rowtotal += $rownum; |
return $datatable; |
return $datatable; |
Line 9982 sub modify_login {
|
Line 10017 sub modify_login {
|
my ($r,$dom,$confname,$lastactref,%domconfig) = @_; |
my ($r,$dom,$confname,$lastactref,%domconfig) = @_; |
my ($resulttext,$errors,$colchgtext,%changes,%colchanges,%newfile,%newurl, |
my ($resulttext,$errors,$colchgtext,%changes,%colchanges,%newfile,%newurl, |
%curr_loginvia,%loginhash,@currlangs,@newlangs,$addedfile,%title,@offon, |
%curr_loginvia,%loginhash,@currlangs,@newlangs,$addedfile,%title,@offon, |
%currsaml,%saml,%samltext,%samlimg,%samlalt,%samlurl,%samltitle,%samlnotsso); |
%currsaml,%saml,%samltext,%samlimg,%samlalt,%samlurl,%samltitle,%samlwindow,%samlnotsso); |
%title = ( coursecatalog => 'Display course catalog', |
%title = ( coursecatalog => 'Display course catalog', |
adminmail => 'Display administrator E-mail address', |
adminmail => 'Display administrator E-mail address', |
helpdesk => 'Display "Contact Helpdesk" link', |
helpdesk => 'Display "Contact Helpdesk" link', |
Line 10006 sub modify_login {
|
Line 10041 sub modify_login {
|
$samlalt{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'alt'}; |
$samlalt{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'alt'}; |
$samlimg{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'img'}; |
$samlimg{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'img'}; |
$samltitle{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'title'}; |
$samltitle{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'title'}; |
|
$samlwindow{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'window'}; |
$samlnotsso{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'notsso'}; |
$samlnotsso{$lonhost} = $domconfig{login}{'saml'}{$lonhost}{'notsso'}; |
} |
} |
} |
} |
Line 10263 sub modify_login {
|
Line 10299 sub modify_login {
|
if ($env{'form.saml_img_'.$lonhost.'.filename'}) { |
if ($env{'form.saml_img_'.$lonhost.'.filename'}) { |
push(@newsamlimgs,$lonhost); |
push(@newsamlimgs,$lonhost); |
} |
} |
foreach my $item ('text','alt','url','title','notsso') { |
foreach my $item ('text','alt','url','title','window','notsso') { |
$env{'form.saml_'.$item.'_'.$lonhost} =~ s/^\s+|\s+$//g; |
$env{'form.saml_'.$item.'_'.$lonhost} =~ s/^\s+|\s+$//g; |
} |
} |
if ($saml{$lonhost}) { |
if ($saml{$lonhost}) { |
|
if ($env{'form.saml_window_'.$lonhost} ne '1') { |
|
$env{'form.saml_window_'.$lonhost} = ''; |
|
} |
if (grep(/^\Q$lonhost\E$/,@delsamlimg)) { |
if (grep(/^\Q$lonhost\E$/,@delsamlimg)) { |
#FIXME Need to obsolete published image |
#FIXME Need to obsolete published image |
delete($currsaml{$lonhost}{'img'}); |
delete($currsaml{$lonhost}{'img'}); |
Line 10284 sub modify_login {
|
Line 10323 sub modify_login {
|
if ($env{'form.saml_title_'.$lonhost} ne $samltitle{$lonhost}) { |
if ($env{'form.saml_title_'.$lonhost} ne $samltitle{$lonhost}) { |
$changes{'saml'}{$lonhost} = 1; |
$changes{'saml'}{$lonhost} = 1; |
} |
} |
|
if ($env{'form.saml_window_'.$lonhost} ne $samlwindow{$lonhost}) { |
|
$changes{'saml'}{$lonhost} = 1; |
|
} |
if ($env{'form.saml_notsso_'.$lonhost} ne $samlnotsso{$lonhost}) { |
if ($env{'form.saml_notsso_'.$lonhost} ne $samlnotsso{$lonhost}) { |
$changes{'saml'}{$lonhost} = 1; |
$changes{'saml'}{$lonhost} = 1; |
} |
} |
} else { |
} else { |
$changes{'saml'}{$lonhost} = 1; |
$changes{'saml'}{$lonhost} = 1; |
} |
} |
foreach my $item ('text','alt','url','title','notsso') { |
foreach my $item ('text','alt','url','title','window','notsso') { |
$currsaml{$lonhost}{$item} = $env{'form.saml_'.$item.'_'.$lonhost}; |
$currsaml{$lonhost}{$item} = $env{'form.saml_'.$item.'_'.$lonhost}; |
} |
} |
} else { |
} else { |
Line 10491 sub modify_login {
|
Line 10533 sub modify_login {
|
alt => 'Alt text for button image', |
alt => 'Alt text for button image', |
url => 'SSO URL', |
url => 'SSO URL', |
title => 'Tooltip for SSO link', |
title => 'Tooltip for SSO link', |
|
window => 'Pop-up window if iframe', |
notsso => 'Text for non-SSO log-in', |
notsso => 'Text for non-SSO log-in', |
); |
); |
foreach my $lonhost (sort(keys(%{$changes{$item}}))) { |
foreach my $lonhost (sort(keys(%{$changes{$item}}))) { |
if (ref($currsaml{$lonhost}) eq 'HASH') { |
if (ref($currsaml{$lonhost}) eq 'HASH') { |
$resulttext .= '<li>'.&mt("$title{$item} in use for [_1]","<b>$lonhost</b>"). |
$resulttext .= '<li>'.&mt("$title{$item} in use for [_1]","<b>$lonhost</b>"). |
'<ul>'; |
'<ul>'; |
foreach my $key ('text','img','alt','url','title','notsso') { |
foreach my $key ('text','img','alt','url','title','window','notsso') { |
if ($currsaml{$lonhost}{$key} eq '') { |
if ($currsaml{$lonhost}{$key} eq '') { |
$resulttext .= '<li>'.&mt("$notlt{$key} not in use").'</li>'; |
$resulttext .= '<li>'.&mt("$notlt{$key} not in use").'</li>'; |
} else { |
} else { |
my $value = "'$currsaml{$lonhost}{$key}'"; |
my $value = "'$currsaml{$lonhost}{$key}'"; |
if ($key eq 'img') { |
if ($key eq 'img') { |
$value = '<img src="'.$currsaml{$lonhost}{$key}.'" />'; |
$value = '<img src="'.$currsaml{$lonhost}{$key}.'" />'; |
|
} elsif ($key eq 'window') { |
|
$value = 'On'; |
} |
} |
$resulttext .= '<li>'.&mt("$notlt{$key} set to: [_1]", |
$resulttext .= '<li>'.&mt("$notlt{$key} set to: [_1]", |
$value).'</li>'; |
$value).'</li>'; |
Line 13113 sub modify_lti {
|
Line 13158 sub modify_lti {
|
$errors .= '<li>'.$proterror.'</li>'; |
$errors .= '<li>'.$proterror.'</li>'; |
} |
} |
|
|
my $putresult; |
my ($putresult,%keystore); |
if (keys(%secchanges)) { |
if (keys(%secchanges)) { |
my %ltienchash; |
my %ltienchash; |
my %ltihash = ( |
my %ltihash = ( |
Line 13121 sub modify_lti {
|
Line 13166 sub modify_lti {
|
); |
); |
$putresult = &Apache::lonnet::put_dom('configuration',\%ltihash,$dom); |
$putresult = &Apache::lonnet::put_dom('configuration',\%ltihash,$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
my %keystore; |
|
if ($secchanges{'private'}) { |
if ($secchanges{'private'}) { |
my $who = &escape($env{'user.name'}.':'.$env{'user.domain'}); |
my $who = &escape($env{'user.name'}.':'.$env{'user.domain'}); |
foreach my $hostid (keys(%newkeyset)) { |
foreach my $hostid (keys(%newkeyset)) { |
Line 16342 sub modify_defaults {
|
Line 16386 sub modify_defaults {
|
$newvalues{$item} = $staticdefaults{$item}; |
$newvalues{$item} = $staticdefaults{$item}; |
} |
} |
} |
} |
|
my ($unamemaprules,$ruleorder); |
|
my @possunamemaprules = &Apache::loncommon::get_env_multiple('form.unamemap_rule'); |
|
if (@possunamemaprules) { |
|
($unamemaprules,$ruleorder) = |
|
&Apache::lonnet::inst_userrules($dom,'unamemap'); |
|
if ((ref($unamemaprules) eq 'HASH') && (ref($ruleorder) eq 'ARRAY')) { |
|
if (@{$ruleorder} > 0) { |
|
my %possrules; |
|
map { $possrules{$_} = 1; } @possunamemaprules; |
|
foreach my $rule (@{$ruleorder}) { |
|
if ($possrules{$rule}) { |
|
push(@{$newvalues{'unamemap_rule'}},$rule); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
if (ref($domdefaults{'unamemap_rule'}) eq 'ARRAY') { |
|
if (ref($newvalues{'unamemap_rule'}) eq 'ARRAY') { |
|
my @rulediffs = &Apache::loncommon::compare_arrays($domdefaults{'unamemap_rule'}, |
|
$newvalues{'unamemap_rule'}); |
|
if (@rulediffs) { |
|
$changes{'unamemap_rule'} = 1; |
|
$domdefaults{'unamemap_rule'} = $newvalues{'unamemap_rule'}; |
|
} |
|
} elsif (@{$domdefaults{'unamemap_rule'}} > 0) { |
|
$changes{'unamemap_rule'} = 1; |
|
delete($domdefaults{'unamemap_rule'}); |
|
} |
|
} elsif (ref($newvalues{'unamemap_rule'}) eq 'ARRAY') { |
|
if (@{$newvalues{'unamemap_rule'}} > 0) { |
|
$changes{'unamemap_rule'} = 1; |
|
$domdefaults{'unamemap_rule'} = $newvalues{'unamemap_rule'}; |
|
} |
|
} |
my %defaults_hash = ( |
my %defaults_hash = ( |
defaults => \%newvalues, |
defaults => \%newvalues, |
); |
); |
Line 16458 sub modify_defaults {
|
Line 16537 sub modify_defaults {
|
$resulttext .= '<li>'.&mt('Institutional user status types deleted').'</li>'; |
$resulttext .= '<li>'.&mt('Institutional user status types deleted').'</li>'; |
} |
} |
} |
} |
|
} elsif ($item eq 'unamemap_rule') { |
|
if (ref($newvalues{'unamemap_rule'}) eq 'ARRAY') { |
|
my @rulenames; |
|
if (ref($unamemaprules) eq 'HASH') { |
|
foreach my $rule (@{$newvalues{'unamemap_rule'}}) { |
|
if (ref($unamemaprules->{$rule}) eq 'HASH') { |
|
push(@rulenames,$unamemaprules->{$rule}->{'name'}); |
|
} |
|
} |
|
} |
|
if (@rulenames) { |
|
$resulttext .= '<li>'.&mt('Mapping for missing usernames includes: [_1]', |
|
'<ul><li>'.join('</li><li>',@rulenames).'</li></ul>'). |
|
'</li>'; |
|
} else { |
|
$resulttext .= '<li>'.&mt('No mapping for missing usernames via standard log-in').'</li>'; |
|
} |
|
} else { |
|
$resulttext .= '<li>'.&mt('Mapping for missing usernames via standard log-in deleted').'</li>'; |
|
} |
} else { |
} else { |
my $value = $env{'form.'.$item}; |
my $value = $env{'form.'.$item}; |
if ($value eq '') { |
if ($value eq '') { |