version 1.217, 2002/05/11 20:42:00
|
version 1.218, 2002/05/13 09:26:29
|
Line 2196 sub courseresdata {
|
Line 2196 sub courseresdata {
|
# --------------------------------------------------------- Value of a Variable |
# --------------------------------------------------------- Value of a Variable |
|
|
sub EXT { |
sub EXT { |
my ($varname,$symbparm)=@_; |
my ($varname,$symbparm,$udom,$uname)=@_; |
|
|
unless ($varname) { return ''; } |
unless ($varname) { return ''; } |
|
|
|
#get real user name/domain, courseid and symb |
|
my $courseid; |
|
if (!($uname && $udom)) { |
|
(my $cursymb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser(); |
|
if (!$symbparm) { $symbparm=$cursymb; } |
|
} else { |
|
$courseid=$ENV{'request.course.id'}; |
|
} |
|
|
my ($realm,$space,$qualifier,@therest)=split(/\./,$varname); |
my ($realm,$space,$qualifier,@therest)=split(/\./,$varname); |
my $rest; |
my $rest; |
if ($therest[0]) { |
if ($therest[0]) { |
Line 2212 sub EXT {
|
Line 2223 sub EXT {
|
if ($realm eq 'user') { |
if ($realm eq 'user') { |
# --------------------------------------------------------------- user.resource |
# --------------------------------------------------------------- user.resource |
if ($space eq 'resource') { |
if ($space eq 'resource') { |
my %restored=&restore(); |
my %restored=&restore(undef,undef,$udom,$uname); |
return $restored{$qualifierrest}; |
return $restored{$qualifierrest}; |
# ----------------------------------------------------------------- user.access |
# ----------------------------------------------------------------- user.access |
} elsif ($space eq 'access') { |
} elsif ($space eq 'access') { |
|
# FIXME - not supporting calls for a specific user |
return &allowed($qualifier,$rest); |
return &allowed($qualifier,$rest); |
# ------------------------------------------ user.preferences, user.environment |
# ------------------------------------------ user.preferences, user.environment |
} elsif (($space eq 'preferences') || ($space eq 'environment')) { |
} elsif (($space eq 'preferences') || ($space eq 'environment')) { |
return $ENV{join('.',('environment',$qualifierrest))}; |
if (($uname eq $ENV{'user.name'}) && |
|
($udom eq $ENV{'user.domain'})) { |
|
return $ENV{join('.',('environment',$qualifierrest))}; |
|
} else { |
|
my %returnhash=&userenvironment($udom,$uname,$qualifierrest); |
|
return $returnhash{$qualifierrest}; |
|
} |
# ----------------------------------------------------------------- user.course |
# ----------------------------------------------------------------- user.course |
} elsif ($space eq 'course') { |
} elsif ($space eq 'course') { |
|
# FIXME - not supporting calls for a specific user |
return $ENV{join('.',('request.course',$qualifier))}; |
return $ENV{join('.',('request.course',$qualifier))}; |
# ------------------------------------------------------------------- user.role |
# ------------------------------------------------------------------- user.role |
} elsif ($space eq 'role') { |
} elsif ($space eq 'role') { |
|
# FIXME - not supporting calls for a specific user |
my ($role,$where)=split(/\./,$ENV{'request.role'}); |
my ($role,$where)=split(/\./,$ENV{'request.role'}); |
if ($qualifier eq 'value') { |
if ($qualifier eq 'value') { |
return $role; |
return $role; |
Line 2233 sub EXT {
|
Line 2253 sub EXT {
|
} |
} |
# ----------------------------------------------------------------- user.domain |
# ----------------------------------------------------------------- user.domain |
} elsif ($space eq 'domain') { |
} elsif ($space eq 'domain') { |
return $ENV{'user.domain'}; |
return $udom; |
# ------------------------------------------------------------------- user.name |
# ------------------------------------------------------------------- user.name |
} elsif ($space eq 'name') { |
} elsif ($space eq 'name') { |
return $ENV{'user.name'}; |
return $uname; |
# ---------------------------------------------------- Any other user namespace |
# ---------------------------------------------------- Any other user namespace |
} else { |
} else { |
my $item=($rest)?$qualifier.'.'.$rest:$qualifier; |
my $item=($rest)?$qualifier.'.'.$rest:$qualifier; |
Line 2253 sub EXT {
|
Line 2273 sub EXT {
|
} |
} |
} elsif ($realm eq 'course') { |
} elsif ($realm eq 'course') { |
# ---------------------------------------------------------- course.description |
# ---------------------------------------------------------- course.description |
return $ENV{'course.'.$ENV{'request.course.id'}.'.'. |
return $ENV{'course.'.$courseid.'.'.$spacequalifierrest}; |
$spacequalifierrest}; |
|
} elsif ($realm eq 'resource') { |
} elsif ($realm eq 'resource') { |
if ($ENV{'request.course.id'}) { |
|
|
|
# print '<br>'.$space.' - '.$qualifier.' - '.$spacequalifierrest; |
if ($courseid eq $ENV{'request.course.id'}) { |
|
|
|
#print '<br>'.$space.' - '.$qualifier.' - '.$spacequalifierrest; |
|
|
# ----------------------------------------------------- Cascading lookup scheme |
# ----------------------------------------------------- Cascading lookup scheme |
my $symbp; |
if (!$symbparm) { $symbparm=&symbread(); } |
if ($symbparm) { |
my $symbp=$symbparm; |
$symbp=$symbparm; |
my $mapp=(split(/\_\_\_/,$symbp))[0]; |
} else { |
|
$symbp=&symbread(); |
my $symbparm=$symbp.'.'.$spacequalifierrest; |
} |
my $mapparm=$mapp.'___(all).'.$spacequalifierrest; |
my $mapp=(split(/\_\_\_/,$symbp))[0]; |
|
|
my $section; |
my $symbparm=$symbp.'.'.$spacequalifierrest; |
if (($ENV{'user.name'} eq $uname) && |
my $mapparm=$mapp.'___(all).'.$spacequalifierrest; |
($ENV{'user.domain'} eq $udom)) { |
|
$section={'request.course.sec'}; |
my $seclevel= |
} else { |
$ENV{'request.course.id'}.'.['. |
$section=&usection($udom,$uname,$courseid); |
$ENV{'request.course.sec'}.'].'.$spacequalifierrest; |
} |
my $seclevelr= |
|
$ENV{'request.course.id'}.'.['. |
my $seclevel=$courseid.'.['.$section.'].'.$spacequalifierrest; |
$ENV{'request.course.sec'}.'].'.$symbparm; |
my $seclevelr=$courseid.'.['.$section.'].'.$symbparm; |
my $seclevelm= |
my $seclevelm=$courseid.'.['.$section.'].'.$mapparm; |
$ENV{'request.course.id'}.'.['. |
|
$ENV{'request.course.sec'}.'].'.$mapparm; |
my $courselevel=$courseid.'.'.$spacequalifierrest; |
|
my $courselevelr=$courseid.'.'.$symbparm; |
my $courselevel= |
my $courselevelm=$courseid.'.'.$mapparm; |
$ENV{'request.course.id'}.'.'.$spacequalifierrest; |
|
my $courselevelr= |
|
$ENV{'request.course.id'}.'.'.$symbparm; |
|
my $courselevelm= |
|
$ENV{'request.course.id'}.'.'.$mapparm; |
|
|
|
# ----------------------------------------------------------- first, check user |
# ----------------------------------------------------------- first, check user |
my %resourcedata=get('resourcedata', |
my %resourcedata=&get('resourcedata', |
[$courselevelr,$courselevelm,$courselevel]); |
[$courselevelr,$courselevelm,$courselevel], |
if (($resourcedata{$courselevelr}!~/^error\:/) && |
$udom,$uname); |
($resourcedata{$courselevelr}!~/^con_lost/)) { |
if (($resourcedata{$courselevelr}!~/^error\:/) && |
|
($resourcedata{$courselevelr}!~/^con_lost/)) { |
if ($resourcedata{$courselevelr}) { |
|
return $resourcedata{$courselevelr}; } |
if ($resourcedata{$courselevelr}) { |
if ($resourcedata{$courselevelm}) { |
return $resourcedata{$courselevelr}; } |
return $resourcedata{$courselevelm}; } |
if ($resourcedata{$courselevelm}) { |
if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; } |
return $resourcedata{$courselevelm}; } |
|
if ($resourcedata{$courselevel}) { |
} else { |
return $resourcedata{$courselevel}; } |
if ($resourcedata{$courselevelr}!~/No such file/) { |
} else { |
&logthis("<font color=blue>WARNING:". |
if ($resourcedata{$courselevelr}!~/No such file/) { |
" Trying to get resource data for ".$ENV{'user.name'}." at " |
&logthis("<font color=blue>WARNING:". |
.$ENV{'user.domain'}.": ".$resourcedata{$courselevelr}. |
" Trying to get resource data for ". |
"</font>"); |
$uname." at ".$udom.": ". |
} |
$resourcedata{$courselevelr}."</font>"); |
} |
} |
|
} |
|
|
# -------------------------------------------------------- second, check course |
# -------------------------------------------------------- second, check course |
|
|
my $coursereply=&courseresdata( |
my $coursereply=&courseresdata($ENV{'course.'.$courseid.'.num'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}, |
$ENV{'course.'.$courseid.'.domain'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
($seclevelr,$seclevelm,$seclevel, |
($seclevelr,$seclevelm,$seclevel, |
$courselevelr,$courselevelm, |
$courselevelr,$courselevelm,$courselevel)); |
$courselevel)); |
if ($coursereply) { return $coursereply; } |
if ($coursereply) { return $coursereply; } |
|
|
# ------------------------------------------------------ third, check map parms |
# ------------------------------------------------------ third, check map parms |
my %parmhash=(); |
my %parmhash=(); |
my $thisparm=''; |
my $thisparm=''; |
if (tie(%parmhash,'GDBM_File', |
if (tie(%parmhash,'GDBM_File', |
$ENV{'request.course.fn'}.'_parms.db',&GDBM_READER,0640)) { |
$ENV{'request.course.fn'}.'_parms.db', |
$thisparm=$parmhash{$symbparm}; |
&GDBM_READER,0640)) { |
untie(%parmhash); |
$thisparm=$parmhash{$symbparm}; |
} |
untie(%parmhash); |
if ($thisparm) { return $thisparm; } |
} |
} |
if ($thisparm) { return $thisparm; } |
|
} |
# --------------------------------------------- last, look in resource metadata |
# --------------------------------------------- last, look in resource metadata |
|
|
$spacequalifierrest=~s/\./\_/; |
$spacequalifierrest=~s/\./\_/; |
my $metadata=&metadata($ENV{'request.filename'},$spacequalifierrest); |
my $metadata=&metadata($ENV{'request.filename'},$spacequalifierrest); |
if ($metadata) { return $metadata; } |
if ($metadata) { return $metadata; } |
$metadata=&metadata($ENV{'request.filename'}, |
$metadata=&metadata($ENV{'request.filename'}, |
'parameter_'.$spacequalifierrest); |
'parameter_'.$spacequalifierrest); |
if ($metadata) { return $metadata; } |
if ($metadata) { return $metadata; } |
|
|
# ------------------------------------------------------------------ Cascade up |
# ------------------------------------------------------------------ Cascade up |
|
unless ($space eq '0') { |
unless ($space eq '0') { |
my ($part,$id)=split(/\_/,$space); |
my ($part,$id)=split(/\_/,$space); |
if ($id) { |
if ($id) { |
my $partgeneral=&EXT('resource.'.$part.'.'.$qualifierrest, |
my $partgeneral=&EXT('resource.'.$part.'.'.$qualifierrest, |
$symbparm,$udom,$uname); |
$symbparm); |
if ($partgeneral) { return $partgeneral; } |
if ($partgeneral) { return $partgeneral; } |
} else { |
} else { |
my $resourcegeneral=&EXT('resource.0.'.$qualifierrest, |
my $resourcegeneral=&EXT('resource.0.'.$qualifierrest, |
$symbparm,$udom,$uname); |
$symbparm); |
if ($resourcegeneral) { return $resourcegeneral; } |
if ($resourcegeneral) { return $resourcegeneral; } |
} |
} |
} |
} |
|
|
|
# ---------------------------------------------------- Any other user namespace |
# ---------------------------------------------------- Any other user namespace |
} elsif ($realm eq 'environment') { |
} elsif ($realm eq 'environment') { |