version 1.412, 2022/08/24 20:58:50
|
version 1.416, 2022/11/11 02:30:19
|
Line 359 sub handler {
|
Line 359 sub handler {
|
modify => \&modify_passwords, |
modify => \&modify_passwords, |
}, |
}, |
'quotas' => |
'quotas' => |
{ text => 'Blogs, personal web pages, webDAV/quotas, portfolios', |
{ text => 'Blogs, personal pages/timezones, webDAV/quotas, portfolio', |
help => 'Domain_Configuration_Quotas', |
help => 'Domain_Configuration_Quotas', |
header => [{col1 => 'User affiliation', |
header => [{col1 => 'User affiliation', |
col2 => 'Available tools', |
col2 => 'Available tools', |
Line 2383 sub print_quotas {
|
Line 2383 sub print_quotas {
|
@options = ('norequest','approval','automatic'); |
@options = ('norequest','approval','automatic'); |
%titles = &authorrequest_titles(); |
%titles = &authorrequest_titles(); |
} else { |
} else { |
@usertools = ('aboutme','blog','webdav','portfolio'); |
@usertools = ('aboutme','blog','webdav','portfolio','timezone'); |
%titles = &tool_titles(); |
%titles = &tool_titles(); |
} |
} |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
Line 2487 sub print_quotas {
|
Line 2487 sub print_quotas {
|
} |
} |
} else { |
} else { |
my $checked = 'checked="checked" '; |
my $checked = 'checked="checked" '; |
|
if ($item eq 'timezone') { |
|
$checked = ''; |
|
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if ($settings->{$item}->{$type} == 0) { |
if (!$settings->{$item}->{$type}) { |
$checked = ''; |
$checked = ''; |
} elsif ($settings->{$item}->{$type} == 1) { |
} elsif ($settings->{$item}->{$type} == 1) { |
$checked = 'checked="checked" '; |
$checked = 'checked="checked" '; |
Line 6580 sub print_lti {
|
Line 6583 sub print_lti {
|
'<label><input type="radio" value="1" name="ltisec_changeprivkey_'.$hostid.'" onclick="javascript:togglePrivKey(this.form,'."'$hostid'".');" />'.&mt('Yes'). |
'<label><input type="radio" value="1" name="ltisec_changeprivkey_'.$hostid.'" onclick="javascript:togglePrivKey(this.form,'."'$hostid'".');" />'.&mt('Yes'). |
'</label> </span><div id="ltisec_divchgprivkey_'.$hostid.'" style="display:none" />'. |
'</label> </span><div id="ltisec_divchgprivkey_'.$hostid.'" style="display:none" />'. |
'<span class="LC_nobreak">'.&mt('New Key').':'. |
'<span class="LC_nobreak">'.&mt('New Key').':'. |
'<input type="password" size="20" name="ltisec_privkey_'.$hostid.'" value="" autocomplete="off" />'. |
'<input type="password" size="20" name="ltisec_privkey_'.$hostid.'" value="" autocomplete="new-password" />'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltisec_privkey_'.$hostid.'.type='."'text'".' } else { this.form.ltisec_privkey_'.$hostid.'.type='."'password'".' }" />'.&mt('Visible input').'</label>'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltisec_privkey_'.$hostid.'.type='."'text'".' } else { this.form.ltisec_privkey_'.$hostid.'.type='."'password'".' }" />'.&mt('Visible input').'</label>'. |
'</span></div>'; |
'</span></div>'; |
} else { |
} else { |
$extra .= '<span class="LC_nobreak">'.&mt('Encryption Key').':'. |
$extra .= '<span class="LC_nobreak">'.&mt('Encryption Key').':'. |
'<input type="password" size="20" name="ltisec_privkey_'.$hostid.'" value="" autocomplete="off" />'. |
'<input type="password" size="20" name="ltisec_privkey_'.$hostid.'" value="" autocomplete="new-password" />'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltisec_privkey_'.$hostid.'.type='."'text'".' } else { this.form.ltisec_privkey_'.$hostid.'.type='."'password'".' }" />'.&mt('Visible input').'</label>'; |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltisec_privkey_'.$hostid.'.type='."'text'".' } else { this.form.ltisec_privkey_'.$hostid.'.type='."'password'".' }" />'.&mt('Visible input').'</label>'; |
} |
} |
$extra .= '</fieldset>'; |
$extra .= '</fieldset>'; |
Line 7717 sub print_privacy {
|
Line 7720 sub print_privacy {
|
domain => 'Assigned domain role(s)', |
domain => 'Assigned domain role(s)', |
author => 'Assigned co-author role(s)', |
author => 'Assigned co-author role(s)', |
course => 'Assigned course role(s)', |
course => 'Assigned course role(s)', |
community => 'Assigned community role', |
community => 'Assigned community role(s)', |
); |
); |
$numinrow = 4; |
$numinrow = 4; |
($othertitle,$usertypes,$types) = |
($othertitle,$usertypes,$types) = |
Line 9701 sub tool_titles {
|
Line 9704 sub tool_titles {
|
blog => 'Blog', |
blog => 'Blog', |
webdav => 'WebDAV', |
webdav => 'WebDAV', |
portfolio => 'Portfolio', |
portfolio => 'Portfolio', |
|
timezone => 'Can set time zone', |
official => 'Official courses (with institutional codes)', |
official => 'Official courses (with institutional codes)', |
unofficial => 'Unofficial courses', |
unofficial => 'Unofficial courses', |
community => 'Communities', |
community => 'Communities', |
Line 10671 sub print_defaults {
|
Line 10675 sub print_defaults {
|
} elsif ($item eq 'lang_def') { |
} elsif ($item eq 'lang_def') { |
my $includeempty = 1; |
my $includeempty = 1; |
$datatable .= &Apache::loncommon::select_language($item,$defaults{$item},$includeempty); |
$datatable .= &Apache::loncommon::select_language($item,$defaults{$item},$includeempty); |
} else { |
} elsif ($item eq 'portal_def') { |
my $size; |
|
if ($item eq 'portal_def') { |
|
$size = ' size="25"'; |
|
} |
|
$datatable .= '<input type="text" name="'.$item.'" value="'. |
$datatable .= '<input type="text" name="'.$item.'" value="'. |
$defaults{$item}.'"'.$size.' />'; |
$defaults{$item}.'" size="25" onkeyup="portalExtras(this);" />'; |
|
my $portalsty = 'none'; |
|
if ($defaults{$item}) { |
|
$portalsty = 'block'; |
|
} |
|
foreach my $field ('email','web') { |
|
my $checkedoff = ' checked="checked"'; |
|
my $checkedon; |
|
if ($defaults{$item.'_'.$field}) { |
|
$checkedon = $checkedoff; |
|
$checkedoff = ''; |
|
} |
|
$datatable .= '<div id="'.$item.'_'.$field.'_div" style="display:'.$portalsty.'">'. |
|
'<span class="LC_nobreak">'.$titles->{$field}.' '. |
|
'<label><input type="radio" name="'.$item.'_'.$field.'" value="1"'.$checkedon.'/>'.&mt('Yes').'</label>'. |
|
(' 'x2). |
|
'<label><input type="radio" name="'.$item.'_'.$field.'" value="0"'.$checkedoff.'/>'.&mt('No').'</label>'. |
|
'</div>'; |
|
} |
|
} else { |
|
$datatable .= '<input type="text" name="'.$item.'" value="'.$defaults{$item}.'" />'; |
} |
} |
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
$rownum ++; |
$rownum ++; |
Line 10773 sub defaults_titles {
|
Line 10793 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', |
|
'email' => 'Email links use portal URL', |
|
'web' => 'Public web links use portal URL', |
'intauth_cost' => 'Encryption cost for bcrypt (positive integer)', |
'intauth_cost' => 'Encryption cost for bcrypt (positive integer)', |
'intauth_check' => 'Check bcrypt cost if authenticated', |
'intauth_check' => 'Check bcrypt cost if authenticated', |
'intauth_switch' => 'Existing crypt-based switched to bcrypt on authentication', |
'intauth_switch' => 'Existing crypt-based switched to bcrypt on authentication', |
Line 11487 sub serverstatus_pages {
|
Line 11509 sub serverstatus_pages {
|
sub defaults_javascript { |
sub defaults_javascript { |
my ($settings) = @_; |
my ($settings) = @_; |
return unless (ref($settings) eq 'HASH'); |
return unless (ref($settings) eq 'HASH'); |
|
my $portal_js = <<"ENDPORTAL"; |
|
|
|
function portalExtras(caller) { |
|
var x = caller.value; |
|
var y = new Array('email','web'); |
|
for (var i=0; i<y.length; i++) { |
|
if (document.getElementById('portal_def_'+y[i]+'_div')) { |
|
var z = document.getElementById('portal_def_'+y[i]+'_div'); |
|
if (x.length > 0) { |
|
z.style.display = 'block'; |
|
} else { |
|
z.style.display = 'none'; |
|
} |
|
} |
|
} |
|
} |
|
ENDPORTAL |
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 11540 $jstext
|
Line 11579 $jstext
|
return; |
return; |
} |
} |
|
|
|
$portal_js |
|
|
|
// ]]> |
|
</script> |
|
|
|
ENDSCRIPT |
|
} else { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
$portal_js |
// ]]> |
// ]]> |
</script> |
</script> |
|
|
Line 13963 sub modify_quotas {
|
Line 14013 sub modify_quotas {
|
@usertools = ('author'); |
@usertools = ('author'); |
%titles = &authorrequest_titles(); |
%titles = &authorrequest_titles(); |
} else { |
} else { |
@usertools = ('aboutme','blog','webdav','portfolio'); |
@usertools = ('aboutme','blog','webdav','portfolio','timezone'); |
%titles = &tool_titles(); |
%titles = &tool_titles(); |
} |
} |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
Line 17900 sub modify_privacy {
|
Line 17950 sub modify_privacy {
|
domain => 'Assigned domain role(s)', |
domain => 'Assigned domain role(s)', |
author => 'Assigned co-author role(s)', |
author => 'Assigned co-author role(s)', |
course => 'Assigned course role(s)', |
course => 'Assigned course role(s)', |
community => 'Assigned community role', |
community => 'Assigned community role(s)', |
); |
); |
my %roles = &Apache::lonlocal::texthash ( |
my %roles = &Apache::lonlocal::texthash ( |
domain => 'Domain role', |
domain => 'Domain role', |
Line 17944 sub modify_privacy {
|
Line 17994 sub modify_privacy {
|
); |
); |
foreach my $item (@items) { |
foreach my $item (@items) { |
if (@instdoms > 1) { |
if (@instdoms > 1) { |
if ($env{'form.privacy_approval_instdom'.$item} =~ /^(none|user|domain|auto)$/) { |
if ($env{'form.privacy_approval_instdom_'.$item} =~ /^(none|user|domain|auto)$/) { |
$privacyhash{'approval'}{'instdom'}{$item} = $env{'form.privacy_approval_instdom_'.$item}; |
$privacyhash{'approval'}{'instdom'}{$item} = $env{'form.privacy_approval_instdom_'.$item}; |
} |
} |
if (ref($current{'approval'}) eq 'HASH') { |
if (ref($current{'approval'}) eq 'HASH') { |
Line 19989 sub modify_defaults {
|
Line 20039 sub modify_defaults {
|
} |
} |
} elsif ($item eq 'portal_def') { |
} elsif ($item eq 'portal_def') { |
if ($newvalues{$item} ne '') { |
if ($newvalues{$item} ne '') { |
unless ($newvalues{$item} =~ /^https?\:\/\/(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])\/?$/) { |
if ($newvalues{$item} =~ /^https?\:\/\/(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])\/?$/) { |
|
foreach my $field ('email','web') { |
|
if ($env{'form.'.$item.'_'.$field}) { |
|
$newvalues{$item.'_'.$field} = $env{'form.'.$item.'_'.$field}; |
|
} |
|
} |
|
} else { |
push(@errors,$item); |
push(@errors,$item); |
} |
} |
} |
} |
} |
} |
if (grep(/^\Q$item\E$/,@errors)) { |
if (grep(/^\Q$item\E$/,@errors)) { |
$newvalues{$item} = $domdefaults{$item}; |
$newvalues{$item} = $domdefaults{$item}; |
|
if ($item eq 'portal_def') { |
|
if ($domdefaults{$item}) { |
|
foreach my $field ('email','web') { |
|
if (exists($domdefaults{$item.'_'.$field})) { |
|
$newvalues{$item.'_'.$field} = $domdefaults{$item.'_'.$field}; |
|
} |
|
} |
|
} |
|
} |
} elsif ($domdefaults{$item} ne $newvalues{$item}) { |
} elsif ($domdefaults{$item} ne $newvalues{$item}) { |
$changes{$item} = 1; |
$changes{$item} = 1; |
} |
} |
|
if ($item eq 'portal_def') { |
|
unless (grep(/^\Q$item\E$/,@errors)) { |
|
if ($newvalues{$item} eq '') { |
|
foreach my $field ('email','web') { |
|
if (exists($domdefaults{$item.'_'.$field})) { |
|
delete($domdefaults{$item.'_'.$field}); |
|
} |
|
} |
|
} else { |
|
unless ($changes{$item}) { |
|
foreach my $field ('email','web') { |
|
if ($domdefaults{$item.'_'.$field} ne $newvalues{$item.'_'.$field}) { |
|
$changes{$item} = 1; |
|
last; |
|
} |
|
} |
|
} |
|
foreach my $field ('email','web') { |
|
if ($newvalues{$item.'_'.$field}) { |
|
$domdefaults{$item.'_'.$field} = $newvalues{$item.'_'.$field}; |
|
} elsif (exists($domdefaults{$item.'_'.$field})) { |
|
delete($domdefaults{$item.'_'.$field}); |
|
} |
|
} |
|
} |
|
} |
|
} |
$domdefaults{$item} = $newvalues{$item}; |
$domdefaults{$item} = $newvalues{$item}; |
} |
} |
my %staticdefaults = ( |
my %staticdefaults = ( |
Line 20198 sub modify_defaults {
|
Line 20290 sub modify_defaults {
|
$value = $authnames{$shortauth{$value}}; |
$value = $authnames{$shortauth{$value}}; |
} |
} |
$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"; |
|
if ($item eq 'portal_def') { |
|
if ($env{'form.'.$item} ne '') { |
|
foreach my $field ('email','web') { |
|
$value = $env{'form.'.$item.'_'.$field}; |
|
if ($value) { |
|
$value = &mt('Yes'); |
|
} else { |
|
$value = &mt('No'); |
|
} |
|
$resulttext .= '<li>'.&mt('[_1] set to "[_2]"',$title->{$field},$value).'</li>'; |
|
} |
|
} |
|
} |
} |
} |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |