--- loncom/xml/lonxml.pm 2001/08/20 14:53:12 1.119 +++ loncom/xml/lonxml.pm 2001/08/22 19:21:36 1.123 @@ -153,24 +153,45 @@ sub xmlend { } sub tokeninputfield { - my $defhost=$Apache::lonnet::perlvar{'lonhostID'}; + my $defhost=$Apache::lonnet::perlvar{'lonHostID'}; + $defhost=~tr/a-z/A-Z/; return (< + +
@@ -224,7 +245,7 @@ sub printtokenheader { '
DocID: '.$token. '
Time: '.localtime().'
'; } else { - return $token; + return $token; } } @@ -414,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; @@ -717,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); } @@ -1098,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__
DocID Checkin
- +
Scan in Barcode
or Type in DocID - +* - - +* +