--- loncom/interface/lonpreferences.pm 2002/02/19 21:50:40 1.4 +++ loncom/interface/lonpreferences.pm 2002/04/30 14:03:52 1.8 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.4 2002/02/19 21:50:40 matthew Exp $ +# $Id: lonpreferences.pm,v 1.8 2002/04/30 14:03:52 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -98,6 +98,65 @@ sub des_decrypt { ################################################################ # Handler subroutines # ################################################################ +sub screennamechanger { + my $r = shift; + my $errormessage = shift; + $errormessage = ($errormessage || ''); + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my $homeserver = $ENV{'user.home'}; + my %userenv = &Apache::lonnet::get('environment',['screenname']); + my $screenname=$userenv{'screenname'}; + $r->print(< + +

Preferences for $user

+

$user is a member of domain $domain

+$errormessage +

+Change anonymous discussion screen name for $user +

+ +
+ +New screenname: + + +
+ + +ENDSCREEN +} + +sub verify_and_change_screenname { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my $homeserver = $ENV{'user.home'}; + my $newscreen = $ENV{'form.screenname'}; + $newscreen=~s/\W//g; + my $message=''; + if ($newscreen) { + &Apache::lonnet::put('environment',{'screenname' => $newscreen}); + &Apache::lonnet::appenv('environment.screenname' => $newscreen); + $message='Set new screenname to '.$newscreen; + } else { + &Apache::lonnet::del('environment',['screenname']); + &Apache::lonnet::delenv('environment\.screenname'); + $message='Reset screenname'; + } + $r->print(< + +

Preferences for $user

+

$user is a member of domain $domain

+

+Change anonymous discussion screen name for $user +

+$message + +ENDVCSCREEN +} ###################################################### # password handler subroutines # @@ -306,8 +365,7 @@ ENDTEXT # error error: run in circles, scream and shout $r->print(<Password for $user was not changed -There was an internal error when attempting to change your password. -Please contact your instructor or the domain coordinator. +Please make sure your old password was entered correctly. ENDERROR } return; @@ -335,6 +393,10 @@ sub handler { &passwordchanger($r); } elsif ($ENV{'form.action'} eq 'verify_and_change_pass') { &verify_and_change_password($r); + } elsif ($ENV{'form.action'} eq 'changescreenname') { + &screennamechanger($r); + } elsif ($ENV{'form.action'} eq 'verify_and_change_screenname') { + &verify_and_change_screenname($r); } else { $r->print(< @@ -354,6 +416,13 @@ ENDHEADER ENDPASSWORDFORM +# Change screen name + $r->print(< + + + +ENDSCREENNAMEFORM # Other preference setting code should be added here } }