--- loncom/interface/lonpreferences.pm 2008/01/20 22:38:06 1.112 +++ loncom/interface/lonpreferences.pm 2008/03/24 04:56:22 1.117 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.112 2008/01/20 22:38:06 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.117 2008/03/24 04:56:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -123,7 +123,7 @@ sub verify_and_change_wysiwyg { my $r = shift; my $newsetting=$env{'form.wysiwyg'}; &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting}); - &Apache::lonnet::appenv('environment.wysiwygeditor' => $newsetting); + &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting}); $r->print('

'.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'

'); } @@ -167,7 +167,7 @@ sub verify_and_change_languages { my $message=''; if ($newlanguage) { &Apache::lonnet::put('environment',{'languages' => $newlanguage}); - &Apache::lonnet::appenv('environment.languages' => $newlanguage); + &Apache::lonnet::appenv({'environment.languages' => $newlanguage}); $message=&mt('Set new preferred languages to ').'"'.$newlanguage.'".'; } else { &Apache::lonnet::del('environment',['languages']); @@ -252,16 +252,16 @@ sub verify_and_change_texengine { my $newtexengine = $env{'form.texengine'}; $newtexengine=~s/[^\-\w]//g; if ($newtexengine eq 'ttm') { - &Apache::lonnet::appenv('browser.mathml' => 1); + &Apache::lonnet::appenv({'browser.mathml' => 1}); } else { if ($env{'environment.texengine'} eq 'ttm') { - &Apache::lonnet::appenv('browser.mathml' => 0); + &Apache::lonnet::appenv({'browser.mathml' => 0}); } } my $message=''; if ($newtexengine) { &Apache::lonnet::put('environment',{'texengine' => $newtexengine}); - &Apache::lonnet::appenv('environment.texengine' => $newtexengine); + &Apache::lonnet::appenv({'environment.texengine' => $newtexengine}); $message=&mt('Set new preferred math display to ').'"'.$newtexengine.'".'; } else { &Apache::lonnet::del('environment',['texengine']); @@ -400,7 +400,7 @@ sub verify_and_change_rolespref { my $message='
'; if ($hotlist_flag) { &Apache::lonnet::put('environment',{'recentroles' => $hotlist_flag}); - &Apache::lonnet::appenv('environment.recentroles' => $hotlist_flag); + &Apache::lonnet::appenv({'environment.recentroles' => $hotlist_flag}); $message=&mt('Recent '.$role.'s Hotlist is Enabled'); } else { &Apache::lonnet::del('environment',['recentroles']); @@ -409,7 +409,7 @@ sub verify_and_change_rolespref { } if ($hotlist_n) { &Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n}); - &Apache::lonnet::appenv('environment.recentrolesn' => $hotlist_n); + &Apache::lonnet::appenv({'environment.recentrolesn' => $hotlist_n}); if ($hotlist_flag) { $message.="
". &mt('Display [_1] Most Recent '.$role.'s',$hotlist_n)."\n"; @@ -495,7 +495,7 @@ sub verify_and_change_screenname { my $message=''; if ($newscreen) { &Apache::lonnet::put('environment',{'screenname' => $newscreen}); - &Apache::lonnet::appenv('environment.screenname' => $newscreen); + &Apache::lonnet::appenv({'environment.screenname' => $newscreen}); $message=&mt('Set new screenname to ').'"'.$newscreen.'.".'; } else { &Apache::lonnet::del('environment',['screenname']); @@ -508,7 +508,7 @@ sub verify_and_change_screenname { $newscreen=~s/[^ \w]//g; if ($newscreen) { &Apache::lonnet::put('environment',{'nickname' => $newscreen}); - &Apache::lonnet::appenv('environment.nickname' => $newscreen); + &Apache::lonnet::appenv({'environment.nickname' => $newscreen}); $message.=&mt('Set new nickname to ').'"'.$newscreen.'".'; } else { &Apache::lonnet::del('environment',['nickname']); @@ -563,7 +563,7 @@ sub verify_and_change_icons { my $newicons = $env{'form.menumode'}; &Apache::lonnet::put('environment',{'icons' => $newicons}); - &Apache::lonnet::appenv('environment.icons' => $newicons); + &Apache::lonnet::appenv({'environment.icons' => $newicons}); $r->print(&mt('Set menu mode to [_1].',$newicons)); } @@ -581,7 +581,7 @@ sub clickerchanger { $clickers=~s/\,/\n/gs; my $text=&mt('Enter response device ("clicker") numbers'); my $change=&mt('Register'); - my $helplink=&Apache::loncommon::help_open_topic('Clicker_Registration', 'Locating your clicker ID'); + my $helplink=&Apache::loncommon::help_open_topic('Clicker_Registration',&mt('Locating your clicker ID')); $r->print(< @@ -605,7 +605,7 @@ sub verify_and_change_clicker { $newclickers=~s/^\,//; $newclickers=~s/\,$//; &Apache::lonnet::put('environment',{'clickers' => $newclickers}); - &Apache::lonnet::appenv('environment.clickers' => $newclickers); + &Apache::lonnet::appenv({'environment.clickers' => $newclickers}); $r->print(&mt('Registering clickers: [_1]',$newclickers)); } @@ -624,6 +624,7 @@ sub msgforwardchanger { crit => 'Critical only', reg => 'Non-critical only', foad => 'Forwarding Address(es)', + noti => 'Notification E-mail Address(es)', foad_exmpl => 'e.g. userA:domain1,userB:domain2,...', mnot => 'Email Address(es) which should be notified about new LON-CAPA messages', # old: 'Message Notification Email Address(es)', mnot_exmpl => 'e.g. joe@doe.com', @@ -633,10 +634,9 @@ sub msgforwardchanger { toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", prme => 'Back to preferences menu', ); - my $forwardingHelp = Apache::loncommon::help_open_topic("Prefs_Forwarding", - &mt("What are forwarding and notification addresses?")); - my $criticalMessageHelp = Apache::loncommon::help_open_topic("Course_Critical_Message", - &mt("What are critical messages?")); + my $forwardingHelp = &Apache::loncommon::help_open_topic("Prefs_Forwarding"); + my $notificationHelp = &Apache::loncommon::help_open_topic("Prefs_Notification"); + my $criticalMessageHelp = &Apache::loncommon::help_open_topic("Course_Critical_Message"); my @allow_html = split(/,/,$userenv{'notifywithhtml'}); my %allnot = &get_notifications(\%userenv); my $validatescript = &Apache::lonhtmlcommon::javascript_valid_email(); @@ -699,12 +699,12 @@ $validatescript $r->print(<$lt{'foad'} $forwardingHelp
$lt{'foad'} ($lt{'foad_exmpl'}): -
-$criticalMessageHelp +
+

$lt{'noti'} $notificationHelp

$lt{'mnot'} ($lt{'mnot_exmpl'}):
ENDMSG my @sortforwards = sort (keys(%allnot)); @@ -713,7 +713,8 @@ ENDMSG ' '. ''.&mt('Action').''. ''.&mt('Notification address').''. - &mt('Types of message for which notification is sent').''. + &mt('Types of message for which notification is sent'). + $criticalMessageHelp.''. &mt('Excerpt retains HTML tags in message').''. &Apache::loncommon::end_data_table_header_row(); my $num = 0; @@ -796,7 +797,7 @@ ENDMSG $num ++; $r->print($output); $r->print(qq| -
+

@@ -840,7 +841,7 @@ sub verify_and_change_msgforward { $newscreen=~s/\,$//; if ($newscreen) { &Apache::lonnet::put('environment',{'msgforward' => $newscreen}); - &Apache::lonnet::appenv('environment.msgforward' => $newscreen); + &Apache::lonnet::appenv({'environment.msgforward' => $newscreen}); $message .= &mt('Set message forwarding to ').'"'.$newscreen.'".' .'
'; } else { @@ -881,7 +882,7 @@ sub verify_and_change_msgforward { $notify_with_html =~ s/\s//gs; if ($notification) { &Apache::lonnet::put('environment',{'notification' => $notification}); - &Apache::lonnet::appenv('environment.notification' => $notification); + &Apache::lonnet::appenv({'environment.notification' => $notification}); $message.=&mt('Set non-critical message notification address(es) to ').'"'.$notification.'".
'; } else { &Apache::lonnet::del('environment',['notification']); @@ -890,7 +891,7 @@ sub verify_and_change_msgforward { } if ($critnotification) { &Apache::lonnet::put('environment',{'critnotification' => $critnotification}); - &Apache::lonnet::appenv('environment.critnotification' => $critnotification); + &Apache::lonnet::appenv({'environment.critnotification' => $critnotification}); $message.=&mt('Set critical message notification address(es) to ').'"'.$critnotification.'".
'; } else { &Apache::lonnet::del('environment',['critnotification']); @@ -900,7 +901,7 @@ sub verify_and_change_msgforward { if ($critnotification || $notification) { if ($notify_with_html) { &Apache::lonnet::put('environment',{'notifywithhtml' => $notify_with_html}); - &Apache::lonnet::appenv('environment.notifywithhtml' => $notify_with_html); + &Apache::lonnet::appenv({'environment.notifywithhtml' => $notify_with_html}); $message.=&mt('Set address(es) to receive excerpts with html retained ').'"'.$notify_with_html.'".'; } else { &Apache::lonnet::del('environment',['notifywithhtml']); @@ -1016,7 +1017,7 @@ sub verify_and_change_colors { my $entry='color.'.$function.'.'.$item; if (($color=~/^\#[0-9A-Fa-f]{6}$/) && (!$env{'form.resetall'})) { &Apache::lonnet::put('environment',{$entry => $color}); - &Apache::lonnet::appenv('environment.'.$entry => $color); + &Apache::lonnet::appenv({'environment.'.$entry => $color}); $message.=&mt('Set '.$colortypes{$item}.' to ').'"'.$color.'".
'; } else { &Apache::lonnet::del('environment',[$entry]); @@ -1026,7 +1027,7 @@ sub verify_and_change_colors { } my $now = time; &Apache::lonnet::put('environment',{'color.timestamp' => $now}); - &Apache::lonnet::appenv('environment.color.timestamp' => $now); + &Apache::lonnet::appenv({'environment.color.timestamp' => $now}); $r->print(< 'EMail Address', + 'email' => 'E-mail Address', 'username' => 'Username', 'domain' => 'Domain', 'currentpass' => 'Current Password', @@ -1185,7 +1186,7 @@ sub client_form { -: +: |; $output .= &Apache::loncommon::select_dom_form($defdom,'udom').' @@ -1324,6 +1325,13 @@ ENDERROR # if ($caller eq 'reset_by_email') { my %data = &Apache::lonnet::tmpget($mailtoken); + if (keys(%data) == 0) { + &passwordchanger($r, + ''. + &mt('Could not verify current authentication.').' '. + &mt('Please try again.').'',$caller,$mailtoken); + return 1; + } if ($currentpass ne $data{'temppasswd'}) { &passwordchanger($r, ''. @@ -1498,7 +1506,7 @@ sub verify_and_change_discussion { if ($newdisp eq 'unread') { $message .=&mt('In discussions: only new posts will be displayed.').'
'; &Apache::lonnet::put('environment',{'discdisplay' => $newdisp}); - &Apache::lonnet::appenv('environment.discdisplay' => $newdisp); + &Apache::lonnet::appenv({'environment.discdisplay' => $newdisp}); } else { $message .= &mt('In discussions: all posts will be displayed.').'
'; &Apache::lonnet::del('environment',['discdisplay']); @@ -1510,7 +1518,7 @@ sub verify_and_change_discussion { if ($newmark eq 'ondisp') { $message.=&mt('In discussions: new posts will be cease to be identified as "NEW" after display.').'
'; &Apache::lonnet::put('environment',{'discmarkread' => $newmark}); - &Apache::lonnet::appenv('environment.discmarkread' => $newmark); + &Apache::lonnet::appenv({'environment.discmarkread' => $newmark}); } else { $message.=&mt('In discussions: posts will be identified as "NEW" until marked as read by the reader.').'
'; &Apache::lonnet::del('environment',['discmarkread']); @@ -1575,7 +1583,7 @@ sub verify_and_change_coursepage { if ($newdisp eq 'firstres') { $message .= $lt{'ywbt'}.'
'; &Apache::lonnet::put('environment',{'course_init_display' => $newdisp}); - &Apache::lonnet::appenv('environment.course_init_display' => $newdisp); + &Apache::lonnet::appenv({'environment.course_init_display' => $newdisp}); } else { $message .= $lt{'apwb'}.'
'; &Apache::lonnet::del('environment',['course_init_display']); @@ -1667,16 +1675,17 @@ sub handler { push (@Options,({ action => 'changemsgforward', linktext => 'Change Message Forwarding and Notification Email Addresses', href => '/adm/preferences', - help => 'Prefs_Forwarding', + help => 'Prefs_Messages', breadcrumb => { href => '/adm/preferences?action=changemsgforward', - text => 'Change Message Forwarding'}, + text => 'Change Message Forwarding/Notification'}, subroutine => \&msgforwardchanger, }, { action => 'verify_and_change_msgforward', + help => 'Prefs_Messages', breadcrumb => { href => '/adm/preferences?action=changemsgforward', - text => 'Change Message Forwarding'}, + text => 'Change Message Forwarding/Notification'}, printmenu => 'no', subroutine => \&verify_and_change_msgforward })); my $aboutmeaction= @@ -1930,7 +1939,7 @@ sub toggle_debug { if ($env{'user.debug'}) { &Apache::lonnet::delenv('user\.debug'); } else { - &Apache::lonnet::appenv('user.debug' => 1); + &Apache::lonnet::appenv({'user.debug' => 1}); } }