--- loncom/lonnet/perl/lonnet.pm 2003/03/24 19:57:35 1.350 +++ loncom/lonnet/perl/lonnet.pm 2003/03/25 19:18:40 1.351 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.350 2003/03/24 19:57:35 www Exp $ +# $Id: lonnet.pm,v 1.351 2003/03/25 19:18:40 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1057,10 +1057,10 @@ sub flushcourselogs { &logthis('Flushing role logs'); foreach (keys %userrolehash) { my $entry=$_; - my ($role,$uname,$udom,$runame,$rudom)= + my ($role,$uname,$udom,$runame,$rudom,$rsec)= split(/\:/,$entry); if (&Apache::lonnet::put('nohist_userroles', - { $role.':'.$uname.':'.$udom => $userrolehash{$entry} }, + { $role.':'.$uname.':'.$udom.':'.$rsec => $userrolehash{$entry} }, $rudom,$runame) eq 'ok') { delete $userrolehash{$entry}; } @@ -1124,7 +1124,32 @@ sub userrolelog { {$trole.':'.$username.':'.$domain.':'.$runame.':'.$rudom.':'.$rsec} =$tend.':'.$tstart; } -} +} + +sub get_course_adv_roles { + my $cid=shift; + $cid=$ENV{'request.course.id'} unless (defined($cid)); + my %coursehash=&coursedescription($cid); + my %returnhash=(); + my %dumphash= + &dump('nohist_userroles',$coursehash{'domain'},$coursehash{'num'}); + my $now=time; + foreach (keys %dumphash) { + my ($tend,$tstart)=split(/\:/,$dumphash{$_}); + if (($tstart) && ($tstart<0)) { next; } + if (($tend) && ($tend<$now)) { next; } + if (($tstart) && ($now<$tstart)) { next; } + my ($role,$username,$domain,$section)=split(/\:/,$_); + my $key=&plaintext($role); + if ($section) { $key.=' (Sec/Grp '.$section.')'; } + if ($returnhash{$key}) { + $returnhash{$key}.=','.$username.':'.$domain; + } else { + $returnhash{$key}=$username.':'.$domain; + } + } + return sort %returnhash; +} # ----------------------------------------------------------- Check out an item sub checkout {