--- loncom/xml/lonxml.pm 2001/08/20 16:12:46 1.120
+++ loncom/xml/lonxml.pm 2001/08/22 19:21:36 1.123
@@ -245,7 +245,7 @@ sub printtokenheader {
'
DocID: '.$token.
'
Time: '.localtime().'
';
} else {
- return $token;
+ return $token;
}
}
@@ -435,7 +435,6 @@ sub htmlclean {
sub inner_xmlparse {
my ($target,$stack,$parstack,$pars,$safeeval,$style_for_target)=@_;
- &Apache::lonxml::debug('Reentrant parser starting, again?');
my $finaloutput = '';
my $result;
my $token;
@@ -738,7 +737,10 @@ sub init_safespace {
#need to inspect this class of ops
# $safeeval->deny(":base_orig");
$safeinit .= ';$external::target="'.$target.'";';
- $safeinit .= ';$external::randomseed='.&Apache::lonnet::rndseed().';';
+ my $rndseed;
+ my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
+ $rndseed=&Apache::lonnet::rndseed($symb,$courseid,$domain,$name);
+ $safeinit .= ';$external::randomseed='.$rndseed.';';
&Apache::run::run($safeinit,$safeeval);
}
@@ -1119,6 +1121,29 @@ sub description {
my ($token)=@_;
return $insertlist{$insertlist{"$token->[1].num"}.'.description'};
}
+
+# ----------------------------------------------------------------- whichuser
+# returns a list of $symb, $courseid, $domain, $name that is correct for
+# calls to lonnet functions for this setup.
+# - looks for form.grade_ parameters
+sub whichuser {
+ my $symb=&Apache::lonnet::symbread();
+ my $courseid=$ENV{'request.course.id'};
+ my $domain=$ENV{'user.domain'};
+ my $name=$ENV{'user.name'};
+ if (defined($ENV{'form.grade_symb'})) {
+ my $tmp_courseid=$ENV{'form.grade_courseid'};
+ my $allowed=&Apache::lonnet::allowed('mgr',$tmp_courseid);
+ if ($allowed) {
+ $symb=$ENV{'form.grade_symb'};
+ $courseid=$ENV{'form.grade_courseid'};
+ $domain=$ENV{'form.grade_domain'};
+ $name=$ENV{'form.grade_username'};
+ }
+ }
+ return ($symb,$courseid,$domain,$name);
+}
+
1;
__END__