--- loncom/lonnet/perl/lonnet.pm 2003/03/24 18:18:09 1.349 +++ 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.349 2003/03/24 18:18:09 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}; } @@ -1119,11 +1119,37 @@ sub userrolelog { if (($trole=~/^ca/) || ($trole=~/^in/) || ($trole=~/^cc/) || ($trole=~/^ep/) || ($trole=~/^cr/)) { - my (undef,$rudom,$runame)=split(/\//,$area); - $userrolehash{$trole.':'.$username.':'.$domain.':'.$runame.':'.$rudom} + my (undef,$rudom,$runame,$rsec)=split(/\//,$area); + $userrolehash + {$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 {