version 1.447.2.4, 2025/01/14 13:20:29
|
version 1.447.2.6, 2025/03/15 01:07:42
|
Line 5371 sub print_ltitools {
|
Line 5371 sub print_ltitools {
|
return $datatable; |
return $datatable; |
} |
} |
|
|
sub ltitools_names { |
|
my %lt = &Apache::lonlocal::texthash( |
|
'title' => 'Title', |
|
'version' => 'Version', |
|
'msgtype' => 'Message Type', |
|
'sigmethod' => 'Signature Method', |
|
'url' => 'URL', |
|
'key' => 'Key', |
|
'lifetime' => 'Nonce lifetime (s)', |
|
'secret' => 'Secret', |
|
'icon' => 'Icon', |
|
'user' => 'User', |
|
'fullname' => 'Full Name', |
|
'firstname' => 'First Name', |
|
'lastname' => 'Last Name', |
|
'email' => 'E-mail', |
|
'roles' => 'Role', |
|
'window' => 'Window', |
|
'tab' => 'Tab', |
|
'iframe' => 'iFrame', |
|
'height' => 'Height', |
|
'width' => 'Width', |
|
'linktext' => 'Default Link Text', |
|
'explanation' => 'Default Explanation', |
|
'passback' => 'Tool can return grades:', |
|
'roster' => 'Tool can retrieve roster:', |
|
'crstarget' => 'Display target', |
|
'crslabel' => 'Course label', |
|
'crstitle' => 'Course title', |
|
'crslinktext' => 'Link Text', |
|
'crsexplanation' => 'Explanation', |
|
'crsappend' => 'Provider URL', |
|
); |
|
return %lt; |
|
} |
|
|
|
sub secrets_form { |
sub secrets_form { |
my ($dom,$context,$encrypt,$privkeys,$rowtotal) = @_; |
my ($dom,$context,$encrypt,$privkeys,$rowtotal) = @_; |
my @ids=&Apache::lonnet::current_machine_ids(); |
my @ids=&Apache::lonnet::current_machine_ids(); |
Line 7937 sub print_passwords {
|
Line 7901 sub print_passwords {
|
min => 'Minimum password length', |
min => 'Minimum password length', |
max => 'Maximum password length', |
max => 'Maximum password length', |
chars => 'Required characters', |
chars => 'Required characters', |
expire => 'Password expiration (days)', |
|
numsaved => 'Number of previous passwords to save and disallow reuse', |
numsaved => 'Number of previous passwords to save and disallow reuse', |
); |
); |
if ($position eq 'top') { |
if ($position eq 'top') { |
Line 8264 sub print_passwords {
|
Line 8227 sub print_passwords {
|
|
|
sub password_rules { |
sub password_rules { |
my ($prefix,$itemcountref,$settings) = @_; |
my ($prefix,$itemcountref,$settings) = @_; |
my ($min,$max,%chars,$expire,$numsaved,$numinrow); |
my ($min,$max,%chars,$numsaved,$numinrow); |
my %titles; |
my %titles; |
if ($prefix eq 'passwords') { |
if ($prefix eq 'passwords') { |
%titles = &Apache::lonlocal::texthash ( |
%titles = &Apache::lonlocal::texthash ( |
Line 8296 sub password_rules {
|
Line 8259 sub password_rules {
|
map { $chars{$_} = 1; } (@{$settings->{chars}}); |
map { $chars{$_} = 1; } (@{$settings->{chars}}); |
} |
} |
if ($prefix eq 'passwords') { |
if ($prefix eq 'passwords') { |
if ($settings->{expire}) { |
|
$expire = $settings->{expire}; |
|
} |
|
if ($settings->{numsaved}) { |
if ($settings->{numsaved}) { |
$numsaved = $settings->{numsaved}; |
$numsaved = $settings->{numsaved}; |
} |
} |
Line 8360 sub password_rules {
|
Line 8320 sub password_rules {
|
$datatable .='</table></td></tr>'; |
$datatable .='</table></td></tr>'; |
$itemcount ++; |
$itemcount ++; |
if ($prefix eq 'passwords') { |
if ($prefix eq 'passwords') { |
$titles{'expire'} = &mt('Password expiration (days)'); |
|
$titles{'numsaved'} = &mt('Number of previous passwords to save and disallow reuse'); |
$titles{'numsaved'} = &mt('Number of previous passwords to save and disallow reuse'); |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'><td>'.$titles{'expire'}.'</td>'. |
|
'<td class="LC_left_item"><span class="LC_nobreak">'. |
|
'<input type="text" name="'.$prefix.'_expire" value="'.$expire.'" size="4" '. |
|
'onblur="javascript:warnInt'.$prefix.'(this);" />'. |
|
'<span class="LC_fontsize_small"> '.&mt('(Leave blank for no expiration)').'</span>'. |
|
'</span></td></tr>'; |
|
$itemcount ++; |
|
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
|
$datatable .= '<tr'.$css_class.'><td>'.$titles{'numsaved'}.'</td>'. |
$datatable .= '<tr'.$css_class.'><td>'.$titles{'numsaved'}.'</td>'. |
'<td class="LC_left_item"><span class="LC_nobreak">'. |
'<td class="LC_left_item"><span class="LC_nobreak">'. |
'<input type="text" name="'.$prefix.'_numsaved" value="'.$numsaved.'" size="3" '. |
'<input type="text" name="'.$prefix.'_numsaved" value="'.$numsaved.'" size="3" '. |
Line 11752 function warnInt$prefix(field) {
|
Line 11703 function warnInt$prefix(field) {
|
field.value = ''; |
field.value = ''; |
} |
} |
if (field.value != '') { |
if (field.value != '') { |
if (field.name == '${prefix}_expire') { |
if (!regexdigit.test(field.value)) { |
var regexpposnum=/^\\d+(|\\.\\d*)\$/; |
if (field.name == '${prefix}_max') { |
if (!regexpposnum.test(field.value)) { |
alert('$intalert{passmax}'); |
alert('$intalert{passexp}'); |
|
field.value = ''; |
|
} else { |
} else { |
var expval = parseFloat(field.value); |
if (field.name == '${prefix}_numsaved') { |
if (expval == 0) { |
alert('$intalert{passnum}'); |
alert('$intalert{passexp}'); |
|
field.value = ''; |
|
} |
} |
} |
} |
} else { |
field.value = ''; |
if (!regexdigit.test(field.value)) { |
|
if (field.name == '${prefix}_max') { |
|
alert('$intalert{passmax}'); |
|
} else { |
|
if (field.name == '${prefix}_numsaved') { |
|
alert('$intalert{passnum}'); |
|
} |
|
} |
|
field.value = ''; |
|
} |
|
} |
} |
} |
} |
} |
} |
Line 18090 sub modify_passwords {
|
Line 18027 sub modify_passwords {
|
min => 'Minimum password length', |
min => 'Minimum password length', |
max => 'Maximum password length', |
max => 'Maximum password length', |
chars => 'Required characters', |
chars => 'Required characters', |
expire => 'Password expiration (days)', |
|
numsaved => 'Number of previous passwords to save', |
numsaved => 'Number of previous passwords to save', |
reset => 'Resetting Forgotten Password', |
reset => 'Resetting Forgotten Password', |
intauth => 'Encryption of Stored Passwords (Internal Auth)', |
intauth => 'Encryption of Stored Passwords (Internal Auth)', |
Line 18474 sub modify_passwords {
|
Line 18410 sub modify_passwords {
|
$resulttext .= '<li>'.&mt('[_1] set to "[_2]"',$titles{$key.'_'.$item},$value).'</li>'; |
$resulttext .= '<li>'.&mt('[_1] set to "[_2]"',$titles{$key.'_'.$item},$value).'</li>'; |
} |
} |
} elsif ($key eq 'rules') { |
} elsif ($key eq 'rules') { |
foreach my $rule ('min','max','expire','numsaved') { |
foreach my $rule ('min','max','numsaved') { |
if ($confighash{'passwords'}{$rule} eq '') { |
if ($confighash{'passwords'}{$rule} eq '') { |
if ($rule eq 'min') { |
if ($rule eq 'min') { |
$resulttext .= '<li>'.&mt('[_1] not set.',$titles{$rule}); |
$resulttext .= '<li>'.&mt('[_1] not set.',$titles{$rule}); |
Line 18569 sub password_rule_changes {
|
Line 18505 sub password_rule_changes {
|
(ref($changes) eq 'HASH')); |
(ref($changes) eq 'HASH')); |
my (@rules,%staticdefaults); |
my (@rules,%staticdefaults); |
if ($prefix eq 'passwords') { |
if ($prefix eq 'passwords') { |
@rules = ('min','max','expire','numsaved'); |
@rules = ('min','max','numsaved'); |
} elsif (($prefix eq 'ltisecrets') || ($prefix eq 'toolsecrets')) { |
} elsif (($prefix eq 'ltisecrets') || ($prefix eq 'toolsecrets')) { |
@rules = ('min','max'); |
@rules = ('min','max'); |
} |
} |
Line 18577 sub password_rule_changes {
|
Line 18513 sub password_rule_changes {
|
foreach my $rule (@rules) { |
foreach my $rule (@rules) { |
$env{'form.'.$prefix.'_'.$rule} =~ s/^\s+|\s+$//g; |
$env{'form.'.$prefix.'_'.$rule} =~ s/^\s+|\s+$//g; |
my $ruleok; |
my $ruleok; |
if ($rule eq 'expire') { |
if ($rule eq 'min') { |
if (($env{'form.'.$prefix.'_'.$rule} =~ /^\d+(|\.\d*)$/) && |
|
($env{'form.'.$prefix.'_'.$rule} ne '0')) { |
|
$ruleok = 1; |
|
} |
|
} elsif ($rule eq 'min') { |
|
if ($env{'form.'.$prefix.'_'.$rule} =~ /^\d+$/) { |
if ($env{'form.'.$prefix.'_'.$rule} =~ /^\d+$/) { |
if ($env{'form.'.$prefix.'_'.$rule} >= $staticdefaults{$rule}) { |
if ($env{'form.'.$prefix.'_'.$rule} >= $staticdefaults{$rule}) { |
$ruleok = 1; |
$ruleok = 1; |