Diff for /loncom/interface/loncommon.pm between versions 1.274 and 1.275

version 1.274, 2005/09/16 16:01:18 version 1.275, 2005/10/04 16:34:40
Line 3054  sub get_sections { Line 3054  sub get_sections {
   
 ###############################################  ###############################################
   
   =pod
                                                                                   
   =item get_course_users
                                                                                   
   Retrieves usernames:domains for users in the specified course
   with specific role(s), and access status. 
   
   Incoming parameters:
   1. course_id
   2. course domain
   3. course number
   4. access status: users must have - either active, 
   previous, future, or all.
   5. reference to array of permissible roles
   6. reference to results object (hash of hashes).
   Keys of top level hash are roles.
   Keys of inner hashes are username:domain, with 
   values set to access type.
                                                                                   
   =cut
                                                                                   
   ###############################################
                                                                                   
   sub get_course_users {
       my ($course_id,$cdom,$cnum,$types,$roles,$users) = @_;
       if (grep/^st$/,@{$roles}) {
           my $statusidx = &Apache::loncoursedata::CL_STATUS;
           my $startidx = &Apache::loncoursedata::CL_START;
           my $endidx = &Apache::loncoursedata::CL_END;
           my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist($course_id,$cdom,$cnum);
           foreach my $student (keys (%{$classlist})) {
               if (defined($$types{'active'})) {
                   if ($$classlist{$student}[$statusidx] eq 'Active') {
                       push(@{$$users{st}{$student}},'active');
                   }
               }
               if (defined($$types{'previous'})) {
                   if ($$classlist{$student}[$endidx] <= time) {
                       push(@{$$users{st}{$student}},'previous');
                   }
               }
               if (defined($$types{'future'})) {
                   if (($$classlist{$student}[$startidx] > 0) && ($$classlist{$student}[$endidx] > time) || ($$classlist{$student}[$endidx] == 0) || ($$classlist{$student}[$endidx] eq '')) {
                       push(@{$$users{st}{$student}},'future');
                   }
               }
           }
       }
       if ((@{$roles} > 0) && (@{$roles} ne "st")) {
           my ($cdom,$cnum) = split/_/,$course_id;
           my @coursepersonnel = &Apache::lonnet::getkeys('nohist_userroles',$cdom,$cnum);
           foreach my $person (@coursepersonnel) {
               my ($role,$user) = ($person =~ /^([^:]*):([^:]+:[^:]+)/);
               $user =~ s/:$//;
               if (($role) && (grep/^$role$/,@{$roles})) {
                   my ($uname,$udom) = split/:/,$user;
                   if ($uname ne '' && $udom ne '') {
                       my $status = &check_user_status($udom,$uname,$cdom,$cnum,$role);
                       foreach my $type (keys %{$types}) { 
                           if ($status eq $type) {
                               $$users{$role}{$user} = $type;
                           }
                       }
                   }
               }
           }
       }
       return;
   }
   
   
   
   ###############################################
   
 sub get_posted_cgi {  sub get_posted_cgi {
     my $r=shift;      my $r=shift;

Removed from v.1.274  
changed lines
  Added in v.1.275


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>