version 1.103, 2001/02/27 20:44:18
|
version 1.119, 2001/04/02 13:43:15
|
Line 3
|
Line 3
|
# |
# |
# Functions for use by content handlers: |
# Functions for use by content handlers: |
# |
# |
|
# metadata_query(sql-query-string,custom-metadata-regex) : |
|
# returns file handle of where sql and |
|
# regex results will be stored for query |
# plaintext(short) : plain text explanation of short term |
# plaintext(short) : plain text explanation of short term |
# fileembstyle(ext) : embed style in page for file extension |
# fileembstyle(ext) : embed style in page for file extension |
# filedescription(ext) : descriptor text for file extension |
# filedescription(ext) : descriptor text for file extension |
Line 87
|
Line 90
|
# 09/01 Guy Albertelli |
# 09/01 Guy Albertelli |
# 09/01,10/01,11/01 Gerd Kortemeyer |
# 09/01,10/01,11/01 Gerd Kortemeyer |
# 02/27/01 Scott Harrison |
# 02/27/01 Scott Harrison |
|
# 3/2 Gerd Kortemeyer |
|
# 3/15,3/19 Scott Harrison |
|
# 3/19,3/20 Gerd Kortemeyer |
|
# 3/22,3/27 Scott Harrison |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 623 sub log {
|
Line 630 sub log {
|
return critical("log:$dom:$nam:$what",$hom); |
return critical("log:$dom:$nam:$what",$hom); |
} |
} |
|
|
|
# --------------------------------------------- Set Expire Date for Spreadsheet |
|
|
|
sub expirespread { |
|
my ($uname,$udom,$stype,$usymb)=@_; |
|
my $cid=$ENV{'request.course.id'}; |
|
if ($cid) { |
|
my $now=time; |
|
my $key=$uname.':'.$udom.':'.$stype.':'.$usymb; |
|
return &reply('put:'.$ENV{'course.'.$cid.'.domain'}.':'. |
|
$ENV{'course.'.$cid.'.num'}. |
|
':nohist_expirationdates:'. |
|
&escape($key).'='.$now, |
|
$ENV{'course.'.$cid.'.home'}) |
|
} |
|
return 'ok'; |
|
} |
|
|
|
# ----------------------------------------------------- Devalidate Spreadsheets |
|
|
|
sub devalidate { |
|
my $symb=shift; |
|
my $cid=$ENV{'request.course.id'}; |
|
if ($cid) { |
|
my $key=$ENV{'user.name'}.':'.$ENV{'user.domain'}.':'; |
|
my $status= |
|
&reply('del:'.$ENV{'course.'.$cid.'.domain'}.':'. |
|
$ENV{'course.'.$cid.'.num'}. |
|
':nohist_calculatedsheets:'. |
|
&escape($key.'studentcalc:'), |
|
$ENV{'course.'.$cid.'.home'}) |
|
.' '. |
|
&reply('del:'.$ENV{'user.domain'}.':'. |
|
$ENV{'user.name'}. |
|
':nohist_calculatedsheets_'.$cid.':'. |
|
&escape($key.'assesscalc:'.$symb), |
|
$ENV{'user.home'}); |
|
unless ($status eq 'ok ok') { |
|
&logthis('Could not devalidate spreadsheet '. |
|
$ENV{'user.name'}.' at '.$ENV{'user.domain'}.' for '. |
|
$symb.': '.$status); |
|
} |
|
} |
|
} |
|
|
# ----------------------------------------------------------------------- Store |
# ----------------------------------------------------------------------- Store |
|
|
sub store { |
sub store { |
my %storehash=@_; |
my %storehash=@_; |
my $symb; |
my $symb; |
unless ($symb=escape(&symbread())) { return ''; } |
unless ($symb=&symbread()) { return ''; } |
|
|
|
&devalidate($symb); |
|
|
|
$symb=escape($symb); |
my $namespace; |
my $namespace; |
unless ($namespace=$ENV{'request.course.id'}) { return ''; } |
unless ($namespace=$ENV{'request.course.id'}) { return ''; } |
my $namevalue=''; |
my $namevalue=''; |
Line 646 sub store {
|
Line 701 sub store {
|
sub cstore { |
sub cstore { |
my %storehash=@_; |
my %storehash=@_; |
my $symb; |
my $symb; |
unless ($symb=escape(&symbread())) { return ''; } |
unless ($symb=&symbread()) { return ''; } |
|
|
|
&devalidate($symb); |
|
|
|
$symb=escape($symb); |
my $namespace; |
my $namespace; |
unless ($namespace=$ENV{'request.course.id'}) { return ''; } |
unless ($namespace=$ENV{'request.course.id'}) { return ''; } |
my $namevalue=''; |
my $namevalue=''; |
Line 1181 sub definerole {
|
Line 1240 sub definerole {
|
} |
} |
} |
} |
|
|
|
# ---------------- Make a metadata query against the network of library servers |
|
|
|
sub metadata_query { |
|
my ($query,$custom,$customshow)=@_; |
|
# need to put in a library server loop here and return a hash |
|
# for my $server (keys %libserv) { |
|
my %rhash; |
|
for my $server ('msul3') { |
|
unless ($custom or $customshow) { |
|
my $reply=&reply("querysend:".&escape($query),$server); |
|
$rhash{$server}=$reply; |
|
return $reply; |
|
} |
|
else { |
|
my $reply=&reply("querysend:".&escape($query).':'. |
|
&escape($custom).':'.&escape($customshow), |
|
$server); |
|
$rhash{$server}=$reply; |
|
return $reply; |
|
} |
|
} |
|
return \%rhash; |
|
} |
|
|
# ------------------------------------------------------------------ Plain Text |
# ------------------------------------------------------------------ Plain Text |
|
|
sub plaintext { |
sub plaintext { |
Line 1208 sub assignrole {
|
Line 1291 sub assignrole {
|
my ($udom,$uname,$url,$role,$end,$start)=@_; |
my ($udom,$uname,$url,$role,$end,$start)=@_; |
my $mrole; |
my $mrole; |
if ($role =~ /^cr\//) { |
if ($role =~ /^cr\//) { |
unless (&allowed('ccr',$url)) { return 'refused'; } |
unless (&allowed('ccr',$url)) { |
|
&logthis('Refused custom assignrole: '. |
|
$udom.' '.$uname.' '.$url.' '.$role.' '.$end.' '.$start.' by '. |
|
$ENV{'user.name'}.' at '.$ENV{'user.domain'}); |
|
return 'refused'; |
|
} |
$mrole='cr'; |
$mrole='cr'; |
} else { |
} else { |
my $cwosec=$url; |
my $cwosec=$url; |
$cwosec=~s/^\/(\w+)\/(\w+)\/.*/$1\/$2/; |
$cwosec=~s/^\/(\w+)\/(\w+)\/.*/$1\/$2/; |
unless (&allowed('c'.$role,$cwosec)) { return 'refused'; } |
unless (&allowed('c'.$role,$cwosec)) { |
|
&logthis('Refused assignrole: '. |
|
$udom.' '.$uname.' '.$url.' '.$role.' '.$end.' '.$start.' by '. |
|
$ENV{'user.name'}.' at '.$ENV{'user.domain'}); |
|
return 'refused'; |
|
} |
$mrole=$role; |
$mrole=$role; |
} |
} |
my $command="encrypt:rolesput:$ENV{'user.domain'}:$ENV{'user.name'}:". |
my $command="encrypt:rolesput:$ENV{'user.domain'}:$ENV{'user.name'}:". |