version 1.69, 2000/11/24 19:59:31
|
version 1.70, 2000/11/25 19:56:04
|
Line 52
|
Line 52
|
# from the directory dir |
# from the directory dir |
# hreflocation(dir,file) : same as filelocation, but for hrefs |
# hreflocation(dir,file) : same as filelocation, but for hrefs |
# log(domain,user,home,msg) : write to permanent log for user |
# log(domain,user,home,msg) : write to permanent log for user |
|
# usection(domain,user,courseid) : output of section name/number or '' for |
|
# "not in course" and '-1' for "no section" |
|
# userenvironment(domain,user,what) : puts out any environment parameter |
|
# for a user |
|
# idput(domain,hash) : writes IDs for users from hash (name=>id,name=>id) |
|
# idget(domain,array): returns hash with usernames (id=>name,id=>name) for |
|
# an array of IDs |
|
# idrget(domain,array): returns hash with IDs for usernames (name=>id,...) for |
|
# an array of names |
# |
# |
# 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30, |
# 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30, |
# 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19, |
# 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19, |
Line 356 sub homeserver {
|
Line 365 sub homeserver {
|
return 'no_host'; |
return 'no_host'; |
} |
} |
|
|
|
# ------------------------------------- Find the usernames behind a list of IDs |
|
|
|
sub idget { |
|
my ($udom,@ids)=@_; |
|
my %returnhash=(); |
|
|
|
my $tryserver; |
|
foreach $tryserver (keys %libserv) { |
|
if ($hostdom{$tryserver} eq $udom) { |
|
my $idlist=join('&',@ids); |
|
$idlist=~tr/A-Z/a-z/; |
|
my $reply=&reply("idget:$udom:".$idlist,$tryserver); |
|
my @answer=(); |
|
if ($reply ne 'con_lost') { |
|
@answer=split(/\&/,$reply); |
|
} ; |
|
my $i; |
|
for ($i=0;$i<=$#ids;$i++) { |
|
if ($answer[$i]) { |
|
$returnhash{$ids[$i]}=$answer[$i]; |
|
} |
|
} |
|
} |
|
} |
|
return %returnhash; |
|
} |
|
|
|
# ------------------------------------- Find the IDs behind a list of usernames |
|
|
|
sub idrget { |
|
my ($udom,@unames)=@_; |
|
my %returnhash=(); |
|
map { |
|
$returnhash{$_}=(&userenvironment($udom,$_,'id'))[1]; |
|
} @unames; |
|
return %returnhash; |
|
} |
|
|
|
# ------------------------------- Store away a list of names and associated IDs |
|
|
|
sub idput { |
|
my ($udom,%ids)=@_; |
|
my %servers=(); |
|
map { |
|
my $uhom=&homeserver($_,$udom); |
|
if ($uhom ne 'no_host') { |
|
my $id=&escape($ids{$_}); |
|
$id=~tr/A-Z/a-z/; |
|
my $unam=&escape($_); |
|
if ($servers{$uhom}) { |
|
$servers{$uhom}.='&'.$id.'='.$unam; |
|
} else { |
|
$servers{$uhom}=$id.'='.$unam; |
|
} |
|
&critical('put:'.$udom.':'.$unam.':environment:id='.$id,$uhom); |
|
} |
|
} keys %ids; |
|
map { |
|
&critical('idput:'.$udom.':'.$servers{$_},$_); |
|
} keys %servers; |
|
} |
|
|
|
# ------------------------------------- Find the section of student in a course |
|
|
|
sub usection { |
|
my ($udom,$unam,$courseid)=@_; |
|
$courseid=~s/\_/\//g; |
|
$courseid=~s/^(\w)/\/$1/; |
|
map { |
|
my ($key,$value)=split(/\=/,$_); |
|
$key=&unescape($key); |
|
if ($key=~/^$courseid(?:\/)*(\w+)*\_st$/) { |
|
my $section=$1; |
|
if ($key eq $courseid.'_st') { $section=''; } |
|
my ($dummy,$end,$start)=split(/\_/,&unescape($value)); |
|
my $now=time; |
|
my $notactive=0; |
|
if ($start) { |
|
if ($now<$start) { $notactive=1; } |
|
} |
|
if ($end) { |
|
if ($now>$end) { $notactive=1; } |
|
} |
|
unless ($notactive) { return $section; } |
|
} |
|
} split(/\&/,&reply('dump:'.$udom.':'.$unam.':roles', |
|
&homeserver($unam,$udom))); |
|
return '-1'; |
|
} |
|
|
|
# ------------------------------------- Read an entry from a user's environment |
|
|
|
sub userenvironment { |
|
my ($udom,$unam,@what)=@_; |
|
my %returnhash=(); |
|
my @answer=split(/\&/, |
|
&reply('get:'.$udom.':'.$unam.':environment:'.join('&',@what), |
|
&homeserver($unam,$udom))); |
|
my $i; |
|
for ($i=0;$i<=$#what;$i++) { |
|
$returnhash{$what[$i]}=&unescape($answer[$i]); |
|
} |
|
return %returnhash; |
|
} |
|
|
# ----------------------------- Subscribe to a resource, return URL if possible |
# ----------------------------- Subscribe to a resource, return URL if possible |
|
|
sub subscribe { |
sub subscribe { |