Diff for /loncom/interface/loncommon.pm between versions 1.276 and 1.277

version 1.276, 2005/10/04 18:27:32 version 1.277, 2005/10/04 18:29:54
Line 3061  Retrieves usernames:domains for users in Line 3061  Retrieves usernames:domains for users in
 with specific role(s), and access status.   with specific role(s), and access status. 
   
 Incoming parameters:  Incoming parameters:
 1. course_id  1. course domain
 2. course domain  2. course number
 3. course number  3. access status: users must have - either active, 
 4. access status: users must have - either active,   
 previous, future, or all.  previous, future, or all.
 5. reference to array of permissible roles  4. reference to array of permissible roles
 6. reference to results object (hash of hashes).  5. reference to results object (hash of hashes).
 Keys of top level hash are roles.  Keys of top level hash are roles.
 Keys of inner hashes are username:domain, with   Keys of inner hashes are username:domain, with 
 values set to access type.  values set to access type.
Line 3077  values set to access type. Line 3076  values set to access type.
 ###############################################  ###############################################
                                                                                                                                                                   
 sub get_course_users {  sub get_course_users {
     my ($course_id,$cdom,$cnum,$types,$roles,$users) = @_;      my ($cdom,$cnum,$types,$roles,$users) = @_;
     if (grep/^st$/,@{$roles}) {      if (grep/^st$/,@{$roles}) {
         my $statusidx = &Apache::loncoursedata::CL_STATUS;          my $statusidx = &Apache::loncoursedata::CL_STATUS();
         my $startidx = &Apache::loncoursedata::CL_START;          my $startidx = &Apache::loncoursedata::CL_START();
         my $endidx = &Apache::loncoursedata::CL_END;          my $endidx = &Apache::loncoursedata::CL_END();
         my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist($cdom,$cnum);          my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist($cdom,$cnum);
         foreach my $student (keys (%{$classlist})) {          foreach my $student (keys(%{$classlist})) {
             if (defined($$types{'active'})) {              if (defined($$types{'active'})) {
                 if ($$classlist{$student}[$statusidx] eq 'Active') {                  if ($$classlist{$student}[$statusidx] eq 'Active') {
                     push(@{$$users{st}{$student}},'active');                      push(@{$$users{st}{$student}},'active');
Line 3102  sub get_course_users { Line 3101  sub get_course_users {
         }          }
     }      }
     if ((@{$roles} > 0) && (@{$roles} ne "st")) {      if ((@{$roles} > 0) && (@{$roles} ne "st")) {
         my ($cdom,$cnum) = split/_/,$course_id;  
         my @coursepersonnel = &Apache::lonnet::getkeys('nohist_userroles',$cdom,$cnum);          my @coursepersonnel = &Apache::lonnet::getkeys('nohist_userroles',$cdom,$cnum);
         foreach my $person (@coursepersonnel) {          foreach my $person (@coursepersonnel) {
             my ($role,$user) = ($person =~ /^([^:]*):([^:]+:[^:]+)/);              my ($role,$user) = ($person =~ /^([^:]*):([^:]+:[^:]+)/);
             $user =~ s/:$//;              $user =~ s/:$//;
             if (($role) && (grep/^$role$/,@{$roles})) {              if (($role) && (grep(/^$role$/,@{$roles}))) {
                 my ($uname,$udom) = split/:/,$user;                  my ($uname,$udom) = split(/:/,$user);
                 if ($uname ne '' && $udom ne '') {                  if ($uname ne '' && $udom ne '') {
                     my $status = &check_user_status($udom,$uname,$cdom,$cnum,$role);                      my $status = &check_user_status($udom,$uname,$cdom,$cnum,$role);
                     foreach my $type (keys %{$types}) {                       foreach my $type (keys(%{$types})) { 
                         if ($status eq $type) {                          if ($status eq $type) {
                             $$users{$role}{$user} = $type;                              $$users{$role}{$user} = $type;
                         }                          }

Removed from v.1.276  
changed lines
  Added in v.1.277


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