--- loncom/interface/lonpreferences.pm 2021/03/06 19:44:54 1.196.4.27 +++ loncom/interface/lonpreferences.pm 2024/07/04 23:13:07 1.196.4.29 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.196.4.27 2021/03/06 19:44:54 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.196.4.29 2024/07/04 23:13:07 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1230,7 +1230,8 @@ sub passwordchanger { # This function is a bit of a mess.... # Passwords are encrypted using londes.js (DES encryption) $errormessage = ($errormessage || ''); - my ($user,$domain,$currentpass); + my ($user,$domain,$currentpass,$clientip); + $clientip = &Apache::lonnet::get_requestor_ip($r); &Apache::lonhtmlcommon::add_breadcrumb( { href => '/adm/preferences?action=changepass', text => 'Change Password'}); @@ -1245,7 +1246,7 @@ sub passwordchanger { $caller = 'preferences'; } my ($blocked,$blocktext) = - &Apache::loncommon::blocking_status('passwd'); + &Apache::loncommon::blocking_status('passwd',$clientip); if ($blocked) { $r->print('

'.$blocktext.'

'); return; @@ -1267,7 +1268,7 @@ sub passwordchanger { $domain = $data{'domain'}; $currentpass = $data{'temppasswd'}; my ($blocked,$blocktext) = - &Apache::loncommon::blocking_status('passwd',$user,$domain); + &Apache::loncommon::blocking_status('passwd',$clientip,$user,$domain); if ($blocked) { $r->print('

'.$blocktext.'

'); return; @@ -1588,7 +1589,7 @@ sub server_form { sub verify_and_change_password { my ($r,$caller,$mailtoken,$timelimit,$extrafields,$ended) = @_; - my ($user,$domain,$homeserver); + my ($user,$domain,$homeserver,$clientip); if ($caller eq 'reset_by_email') { $user = $env{'form.uname'}; $domain = $env{'form.udom'}; @@ -1611,8 +1612,9 @@ sub verify_and_change_password { $domain = $env{'user.domain'}; $homeserver = $env{'user.home'}; } + $clientip = &Apache::lonnet::get_requestor_ip($r); my ($blocked,$blocktext) = - &Apache::loncommon::blocking_status('passwd',$user,$domain); + &Apache::loncommon::blocking_status('passwd',$clientip,$user,$domain); if ($blocked) { $r->print('

'.$blocktext.'

'); if ($caller eq 'reset_by_email') { @@ -2092,13 +2094,9 @@ sub change_authoring_settings { sub lockednameschanger { my $r = shift; - &Apache::lonhtmlcommon::add_breadcrumb( - { href => '/adm/preferences?action=changelockednames', - text => 'Automatic name changes'}); - $r->print(Apache::loncommon::start_page('Automatic name changes')); - $r->print(Apache::lonhtmlcommon::breadcrumbs('Allow/disallow name updates')); my %userenv = &Apache::lonnet::get('environment',['lockedname']); my $lockedname=''; + my $ended; if (&can_toggle_namelocking()) { if ($userenv{'lockedname'}) { $lockedname = ' checked="checked"'; @@ -2116,6 +2114,11 @@ sub lockednameschanger { } } if (keys(%updateable)) { + &Apache::lonhtmlcommon::add_breadcrumb( + { href => '/adm/preferences?action=changelockednames', + text => 'Automatic name changes'}); + $r->print(Apache::loncommon::start_page('Automatic name changes')); + $r->print(Apache::lonhtmlcommon::breadcrumbs('Allow/disallow name updates')); my %longnames = &Apache::lonlocal::texthash ( firstname => 'First Name', middlename => 'Middle Name', @@ -2142,11 +2145,14 @@ ENDSCREEN } else { my $message = &mt('Based on your institutional affiliation no name information is automatically updated for your LON-CAPA account.'); &print_main_menu($r,$message); + $ended = 1; } } else { my $message = &mt('You are not permitted to set a user preference for automatic name updates for your LON-CAPA account.'); &print_main_menu($r,$message); + $ended = 1; } + return $ended; } sub verify_and_change_lockednames { @@ -2506,7 +2512,7 @@ sub handler { &print_main_menu($r); $ended = 1; } elsif ($env{'form.action'} eq 'changelockednames') { - &lockednameschanger($r); + $ended = &lockednameschanger($r); } elsif ($env{'form.action'} eq 'verify_and_change_lockednames') { &verify_and_change_lockednames($r); $ended = 1;