--- loncom/interface/lonpreferences.pm 2002/02/15 22:04:39 1.3
+++ loncom/interface/lonpreferences.pm 2002/03/30 23:27:00 1.6
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.3 2002/02/15 22:04:39 matthew Exp $
+# $Id: lonpreferences.pm,v 1.6 2002/03/30 23:27:00 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -49,50 +49,22 @@ use Apache::Constants qw(:common);
use Apache::File;
use Crypt::DES;
use DynaLoader; # for Crypt::DES version
+use Apache::loncommon();
-#------------------- forms to be output
-my $passwordform =<
-
-
-
-ENDPASSWORDFORM
-
-my $environmentform = <
-There are currently no environment variables you can change.
-
-
-ENDENVIRONMENTFORM
-#------------------ end of forms to be output
-
-################################################################
-# Handler subroutines #
-################################################################
#
# Write lonnet::passwd to do the call below.
# Use:
# my $answer=reply("encrypt:passwd:$udom:$uname:$upass",$tryserver);
#
-# I really should write some javascript to check on the client side for
-# mismatched passwords, but other problems are more pressing
-#
##################################################
# password associated functions #
##################################################
sub des_keys {
- # Make a new key for DES encryption
- # Each key has two parts which are returned seperately
+ # Make a new key for DES encryption.
+ # Each key has two parts which are returned seperately.
+ # Please note: Each key must be passed through the &hex function
+ # before it is output to the web browser. The hex versions cannot
+ # be used to decrypt.
my @hexstr=('0','1','2','3','4','5','6','7',
'8','9','a','b','c','d','e','f');
my $lkey='';
@@ -119,16 +91,82 @@ sub des_decrypt {
$cypher->decrypt(unpack("a8",pack("H16",substr($cyphertext,0,16))));
$plaintext.=
$cypher->decrypt(unpack("a8",pack("H16",substr($cyphertext,16,16))));
- $plaintext=unpack("a8",$plaintext);
- $plaintext=substr($plaintext,1,ord(substr($plaintext,0,1)));
- unpack("a8",$plaintext);
+ $plaintext=substr($plaintext,1,ord(substr($plaintext,0,1)) );
return $plaintext;
}
+################################################################
+# 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
+