--- loncom/homework/lonhomework.pm 2008/05/19 20:38:04 1.292 +++ loncom/homework/lonhomework.pm 2009/03/26 12:03:45 1.307 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.292 2008/05/19 20:38:04 www Exp $ +# $Id: lonhomework.pm,v 1.307 2009/03/26 12:03:45 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -173,7 +173,7 @@ sub setup_vars { sub createmenu { my ($which,$request)=@_; if ($which eq 'grade') { - $request->print(''); @@ -209,58 +209,6 @@ sub proctor_checked_in { return 0; } -sub check_ip_acc { - my ($acc)=@_; - &Apache::lonxml::debug("acc is $acc"); - if (!defined($acc) || $acc =~ /^\s*$/ || $acc =~/^\s*no\s*$/i) { - return 1; - } - my $allowed=0; - my $ip=$env{'request.host'} || $ENV{'REMOTE_ADDR'}; - - my $name; - foreach my $pattern (split(',',$acc)) { - $pattern =~ s/^\s*//; - $pattern =~ s/\s*$//; - if ($pattern =~ /\*$/) { - #35.8.* - $pattern=~s/\*//; - if ($ip =~ /^\Q$pattern\E/) { $allowed=1; } - } elsif ($pattern =~ /(\d+\.\d+\.\d+)\.\[(\d+)-(\d+)\]$/) { - #35.8.3.[34-56] - my $low=$2; - my $high=$3; - $pattern=$1; - if ($ip =~ /^\Q$pattern\E/) { - my $last=(split(/\./,$ip))[3]; - if ($last <=$high && $last >=$low) { $allowed=1; } - } - } elsif ($pattern =~ /^\*/) { - #*.msu.edu - $pattern=~s/\*//; - if (!defined($name)) { - use Socket; - my $netaddr=inet_aton($ip); - ($name)=gethostbyaddr($netaddr,AF_INET); - } - if ($name =~ /\Q$pattern\E$/i) { $allowed=1; } - } elsif ($pattern =~ /\d+\.\d+\.\d+\.\d+/) { - #127.0.0.1 - if ($ip =~ /^\Q$pattern\E/) { $allowed=1; } - } else { - #some.name.com - if (!defined($name)) { - use Socket; - my $netaddr=inet_aton($ip); - ($name)=gethostbyaddr($netaddr,AF_INET); - } - if ($name =~ /\Q$pattern\E$/i) { $allowed=1; } - } - if ($allowed) { last; } - } - return $allowed; -} - sub check_slot_access { my ($id,$type)=@_; @@ -307,7 +255,7 @@ sub check_slot_access { &Apache::lonhomework::showhash(%slot); if ($slot{'starttime'} < time && $slot{'endtime'} > time && - &check_ip_acc($slot{'ip'})) { + &Apache::loncommon::check_ip_acc($slot{'ip'})) { &Apache::lonxml::debug("$slot is good"); $slotstatus='NEEDS_CHECKIN'; $returned_slot=\%slot; @@ -421,7 +369,7 @@ sub check_access { #if ($env{'request.state'} ne "construct" && $symb ne '') { if ($env{'request.state'} ne "construct") { my $idacc = &Apache::lonnet::EXT("resource.$id.acc"); - my $allowed=&check_ip_acc($idacc); + my $allowed=&Apache::loncommon::check_ip_acc($idacc); if (!$allowed && ($Apache::lonhomework::browse ne 'F')) { $status='INVALID_ACCESS'; $date=&mt("can not be accessed from your location."); @@ -854,12 +802,18 @@ sub analyze { $request->print(''); } } else { - $request->print('
'.&mt('Response').' '.$part.' '. - &mt('is not analyzable at this time').'
'); + $request->print('' + .&mt('Response [_1] is not analyzable at this time.',$part) + .'
' + ); } } if (scalar(keys(%allparts)) == 0 ) { - $request->print(''.&mt('Found no analyzable responses in this problem, currently only Numerical, Formula and String response styles are supported.').'
'); + $request->print('' + .&mt('Found no analyzable responses in this problem.' + .' Currently only Numerical, Formula and String response styles are supported.') + .'
' + ); } &Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); &analyze_footer($request); @@ -907,8 +861,12 @@ sub editxmlmode { my $result; my $problem=&Apache::lonnet::getfile($file); if ($problem eq -1) { - &Apache::lonxml::error(" ".&mt('Unable to find'). - " $file"); + &Apache::lonxml::error( + ' ' + .&mt('Unable to find [_1]', + ''.$file.'') + .''); + $problem=''; } if (defined($env{'form.editxmltext'}) || defined($env{'form.Undo'})) { @@ -923,20 +881,17 @@ sub editxmlmode { &renderpage($request,$file); } else { my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem); - my $xml_help = ''. - &Apache::loncommon::helpLatexCheatsheet("Problem_Editor_XML_Index", - "Problem Editing Help"). - ' | '. - &Apache::loncommon::help_open_menu(undef,undef,5,'Authoring'). - ' |
'.&mt('Problem Editing').&Apache::loncommon::help_open_topic('Problem_Editor_XML_Index').' | - '.&Apache::loncommon::helpLatexCheatsheet().' + '.&Apache::loncommon::helpLatexCheatsheet('Problem_LON-CAPA_Functions','Script Functions').' |