--- loncom/interface/lonpreferences.pm 2002/08/27 13:23:01 1.11 +++ loncom/interface/lonpreferences.pm 2002/09/07 03:44:14 1.12 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.11 2002/08/27 13:23:01 www Exp $ +# $Id: lonpreferences.pm,v 1.12 2002/09/07 03:44:14 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -152,6 +152,72 @@ $message ENDVCSCREEN } +################################################################ +# Message Forward # +################################################################ + +sub msgforwardchanger { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my %userenv = &Apache::lonnet::get('environment',['msgforward']); + my $msgforward=$userenv{'msgforward'}; + my $bodytag=&Apache::loncommon::bodytag( + 'Change Your Message Forwarding'); + $r->print(< +$bodytag + +
+ +New Forwarding Address(es) (user:domain,user:domain,...): + + +
+ + +ENDMSG +} + +sub verify_and_change_msgforward { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my $newscreen = ''; + my $message=''; + foreach (split(/\,/,$ENV{'form.msgforward'})) { + my ($msuser,$msdomain)=split(/[\@\:]/,$_); + $msuser=~s/\W//g; + $msdomain=~s/\W//g; + if (($msuser) && ($msdomain)) { + if (&Apache::lonnet::homeserver($msuser,$msdomain) ne 'no_host') { + $newscreen.=$msuser.':'.$msdomain.','; + } else { + $message.='No such user: '.$msuser.':'.$msdomain.'
'; + } + } + } + $newscreen=~s/\,$//; + if ($newscreen) { + &Apache::lonnet::put('environment',{'msgforward' => $newscreen}); + &Apache::lonnet::appenv('environment.msgforward' => $newscreen); + $message.='Set new message forwarding to '.$newscreen; + } else { + &Apache::lonnet::del('environment',['msgforward']); + &Apache::lonnet::delenv('environment\.msgforward'); + $message.='Reset message forwarding'; + } + my $bodytag=&Apache::loncommon::bodytag( + 'Change Your Message Forwarding'); + $r->print(< +$bodytag +

+$message + +ENDVCMSG +} + ###################################################### # password handler subroutines # ###################################################### @@ -389,6 +455,10 @@ sub handler { &screennamechanger($r); } elsif ($ENV{'form.action'} eq 'verify_and_change_screenname') { &verify_and_change_screenname($r); + } elsif ($ENV{'form.action'} eq 'changemsgforward') { + &msgforwardchanger($r); + } elsif ($ENV{'form.action'} eq 'verify_and_change_msgforward') { + &verify_and_change_msgforward($r); } else { $r->print(< @@ -413,6 +483,12 @@ ENDPASSWORDFORM ENDSCREENNAMEFORM + $r->print(< + + + +ENDMSGFORWARDFORM # The "about me" page my $aboutmeaction= '/adm/'.$ENV{'user.domain'}.'/'.$ENV{'user.name'}.'/aboutme';