version 1.13, 2000/10/30 15:12:49
|
version 1.15, 2000/11/01 22:21:36
|
Line 11
|
Line 11
|
# 7/1,7/3,7/4,7/7,7/8,7/10 Gerd Kortemeyer) |
# 7/1,7/3,7/4,7/7,7/8,7/10 Gerd Kortemeyer) |
# |
# |
# 7/15,7/17,7/18,8/1,8/2,8/4,8/5,8/21,8/22,8/23,8/30, |
# 7/15,7/17,7/18,8/1,8/2,8/4,8/5,8/21,8/22,8/23,8/30, |
# 9/2,9/4,9/29,9/30,10/2,10/11,10/30 Gerd Kortemeyer |
# 9/2,9/4,9/29,9/30,10/2,10/11,10/30,10/31,11/1 Gerd Kortemeyer |
|
|
package Apache::lonuserstate; |
package Apache::lonuserstate; |
|
|
Line 22 use HTML::TokeParser;
|
Line 22 use HTML::TokeParser;
|
use Apache::lonnet(); |
use Apache::lonnet(); |
use GDBM_File; |
use GDBM_File; |
use Apache::lonmsg; |
use Apache::lonmsg; |
|
use Safe; |
|
use Opcode; |
|
|
|
|
# ---------------------------------------------------- Globals for this package |
# ---------------------------------------------------- Globals for this package |
|
|
Line 300 sub accinit {
|
Line 303 sub accinit {
|
} keys %hash; |
} keys %hash; |
my $courseuri=$uri; |
my $courseuri=$uri; |
$courseuri=~s/^\/res\///; |
$courseuri=~s/^\/res\///; |
|
&Apache::lonnet::delenv('(acc\.|httpref\.)'); |
&Apache::lonnet::appenv(%acchash, |
&Apache::lonnet::appenv(%acchash, |
"request.course.id" => $short, |
"request.course.id" => $short, |
"request.course.fn" => $fn, |
"request.course.fn" => $fn, |
Line 351 sub readmap {
|
Line 355 sub readmap {
|
"Could not tie coursemap $fn for $uri.</font>"); |
"Could not tie coursemap $fn for $uri.</font>"); |
} |
} |
&Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext); |
&Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext); |
|
&evalstate(); |
return $errtext; |
return $errtext; |
} |
} |
|
|
|
# ------------------------------------------------------- Evaluate state string |
|
|
|
sub evalstate { |
|
my $safeeval = new Safe; |
|
my $fn=$ENV{'request.course.fn'}.'.state'; |
|
my $state='2'; |
|
if (-e $fn) { |
|
my @conditions=(); |
|
{ |
|
my $fh=Apache::File->new($fn); |
|
@conditions=<$fh>; |
|
} |
|
$safeeval->permit("entereval"); |
|
$safeeval->permit(":base_math"); |
|
$safeeval->deny(":base_io"); |
|
$safeeval->share_from('Apache::lonnet',['&varval']); |
|
map { |
|
my $line=$_; |
|
chomp($line); |
|
my ($condition,$weight)=split(/\:/,$_); |
|
$condition=~s/\&([\w\.]+)/\&varval\(\'$1\'\)/g; |
|
if ($safeeval->reval($condition)) { |
|
if ($weight eq 'force') { |
|
$state.='3'; |
|
} else { |
|
$state.='2'; |
|
} |
|
} else { |
|
if ($weight eq 'stop') { |
|
$state.='0'; |
|
} else { |
|
$state.='1'; |
|
} |
|
} |
|
} @conditions; |
|
} |
|
&Apache::lonnet::appenv('user.state.'.$ENV{'request.course.id'} => $state); |
|
return $state; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |
|
|