--- loncom/interface/lonpreferences.pm 2016/01/27 01:43:01 1.196.4.17
+++ loncom/interface/lonpreferences.pm 2012/08/16 17:02:55 1.198
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.196.4.17 2016/01/27 01:43:01 raeburn Exp $
+# $Id: lonpreferences.pm,v 1.198 2012/08/16 17:02:55 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,6 +36,8 @@ use strict;
use LONCAPA;
use Apache::Constants qw(:common);
use Apache::File;
+use Crypt::DES;
+use DynaLoader; # for Crypt::DES version
use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::lonlocal;
@@ -43,6 +45,50 @@ use Apache::lonnet;
use LONCAPA::lonauthcgi();
use LONCAPA();
+#
+# Write lonnet::passwd to do the call below.
+# Use:
+# my $answer=reply("encrypt:passwd:$udom:$uname:$upass",$tryserver);
+#
+##################################################
+# password associated functions #
+##################################################
+sub des_keys {
+ # Make a new key for DES encryption.
+ # Each key has two parts which are returned separately.
+ # 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='';
+ for (0..7) {
+ $lkey.=$hexstr[rand(15)];
+ }
+ my $ukey='';
+ for (0..7) {
+ $ukey.=$hexstr[rand(15)];
+ }
+ return ($lkey,$ukey);
+}
+
+sub des_decrypt {
+ my ($key,$cyphertext) = @_;
+ my $keybin=pack("H16",$key);
+ my $cypher;
+ if ($Crypt::DES::VERSION>=2.03) {
+ $cypher=new Crypt::DES $keybin;
+ } else {
+ $cypher=new DES $keybin;
+ }
+ my $plaintext=
+ $cypher->decrypt(unpack("a8",pack("H16",substr($cyphertext,0,16))));
+ $plaintext.=
+ $cypher->decrypt(unpack("a8",pack("H16",substr($cyphertext,16,16))));
+ $plaintext=substr($plaintext,1,ord(substr($plaintext,0,1)) );
+ return $plaintext;
+}
+
################################################################
# Handler subroutines #
################################################################
@@ -106,16 +152,32 @@ sub languagechanger {
text => 'Change Language'});
$r->print(Apache::loncommon::start_page('Content Display Settings'));
$r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language'));
- my %userenv = &Apache::lonnet::get('environment',['languages']);
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my %userenv = &Apache::lonnet::get
+ ('environment',['languages']);
my $language=$userenv{'languages'};
- $r->print(
- '
'
- );
+ my $pref=&mt('Preferred language');
+ my %langchoices=('' => 'No language preference');
+ foreach (&Apache::loncommon::languageids()) {
+ if (&Apache::loncommon::supportedlanguagecode($_)) {
+ $langchoices{&Apache::loncommon::supportedlanguagecode($_)}
+ = &Apache::loncommon::plainlanguagedescription($_);
+ }
+ }
+ %langchoices = &Apache::lonlocal::texthash(%langchoices);
+ my $selectionbox=
+ &Apache::loncommon::select_form(
+ $language,
+ 'language',
+ \%langchoices);
+ $r->print(<
+
+ $pref: $selectionbox
+ENDLSCREEN
+ $r->print(' ');
}
@@ -165,7 +227,7 @@ sub texenginechanger {
'tth' => 'tth (TeX to HTML)',
#'ttm' => 'TeX to MathML',
'jsMath' => 'jsMath',
- 'MathJax' => 'MathJax',
+ 'MathJax' => 'MathJax',
'mimetex' => 'mimetex (Convert to Images)',
'raw' => 'Raw (Screen Reader)'
);
@@ -183,7 +245,6 @@ sub texenginechanger {
'change' => 'Save',
'exmpl' => 'Examples',
'mathjax' => 'MathJax:',
- 'mathjaxinfo' => 'MathJax provides rendered equations whose source code can be extracted in TeX and MathML formats by right clicking the equation.',
'jsmath' => 'jsMath:',
'tth' => 'tth (TeX to HTML):',
'mimetex' => 'mimetex (Convert to Images):',
@@ -220,10 +281,10 @@ $lt{'exmpl'}
$lt{'mathjax'}
-
+
-$lt{'mathjaxinfo'}
+MathJax provides rendered equations whose source code can be extracted in TeX and MathML formats by right clicking the equation.
ENDLSCREEN
if ($env{'environment.texengine'} ne 'jsMath') {
@@ -309,7 +370,7 @@ sub rolesprefchanger {
my $hotlist_n=$userenv{'recentrolesn'};
my ($checkedon,$checkedoff);
if ($hotlist_flag) {
- $checkedon = 'checked="checked"';
+ $checkedon = 'checked="checked"';
} else {
$checkedoff = 'checked="checked"';
}
@@ -392,17 +453,17 @@ $options.'
&Apache::lonhtmlcommon::row_closure(1).
&Apache::lonhtmlcommon::end_pick_box().'
');
- if ($roles_check_list) {
+ if ($roles_check_list) {
$r->print('
'.&mt('Freeze Roles').'
'.&mt('The table below can be used to [_1]freeze[_2] '.$lc_role.'s in the Hotlist.','','').' '.
-&mt('Those '.$lc_role.'s marked frozen will not be removed from the list, even if not recently used.').'
+&mt('Those marked frozen will not be removed from the list, even if not recently used.').'
'.$roles_check_list.'
');
} else {
$r->print(' '.
- &mt('Once the Hotlist contains recently visited '.$lc_role.'s you can return to this page to also set frozen roles.'));
+ &mt('Once the Hotlist contains recently visited '.$lc_role.'s, you can return to this page to also set frozen roles.'));
}
$r->print('
@@ -746,8 +807,8 @@ sub domcoordchanger {
if ($userenv{'domcoord.author'} eq 'blocked') {
$constchecked=' checked="checked"';
}
- my $text=&mt('By default, the Domain Coordinator can enter your Authoring Space.');
- my $construction=&mt('Block access to Authoring Space');
+ my $text=&mt('By default, the Domain Coordinator can enter your construction space.');
+ my $construction=&mt('Block access to construction space');
my $change=&mt('Save');
$r->print(<
@@ -773,7 +834,7 @@ sub verify_and_change_domcoord {
} else {
$status=&mt('off');
}
- my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]',''.&mt('Block access to Authoring Space').'',''.$status.''));
+ my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]',''.&mt('Block access to construction space').'',''.$status.''));
$message=&Apache::loncommon::confirmwrapper($message);
&print_main_menu($r,$message);
}
@@ -789,7 +850,7 @@ sub lockwarning {
my $textbottom=&mt('Changing roles or logging out may result in data corruption.');
my ($num,%which)=&Apache::lonnet::get_locks();
my $which='';
- foreach my $id (keys(%which)) {
+ foreach my $id (keys %which) {
$which.='
'.$which{$id}.'
';
}
my $change=&mt('Override');
@@ -831,15 +892,15 @@ sub msgforwardchanger {
foad => 'Forward to account(s)',
fwdm => 'Forward messages to other account(s) in LON-CAPA',
noti => 'E-mail notification of LON-CAPA messages',
+ foad_exmpl => 'e.g. userA:domain1,userB:domain2,...',
mnot => 'E-mail address(es) which should be notified about new LON-CAPA messages',
+ mnot_exmpl => 'e.g. joe@doe.com',
chg => 'Save',
email => 'The e-mail address entered in row ',
notv => 'is not a valid e-mail address',
toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one",
prme => 'Back',
);
- $lt{'foad_exmpl'} = &mt('e.g. [_1]userA:domain1,userB:domain2,...[_2]','','');
- $lt{'mnot_exmpl'} = &mt('e.g. [_1]joe@doe.com[_2]','','');
Apache::lonhtmlcommon::add_breadcrumb(
{ href => '/adm/preferences?action=changemsgforward',
text => 'Messages & Notifications'});
@@ -943,7 +1004,7 @@ ENDMSG
'" onclick="javscript:delete_address('."'$num'".')" />'.
&mt('Delete').''.
'
';
my %chk;
if (defined($allnot{$item}{'crit'})) {
@@ -992,7 +1053,7 @@ ENDMSG
''.&mt('Add new address').'