--- loncom/interface/loncommon.pm 2005/10/04 16:34:40 1.275 +++ loncom/interface/loncommon.pm 2005/11/01 20:47:15 1.281 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.275 2005/10/04 16:34:40 raeburn Exp $ +# $Id: loncommon.pm,v 1.281 2005/11/01 20:47:15 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1565,10 +1565,11 @@ sub authform_nochange{ kerb_def_dom => 'MSU.EDU', @_, ); - my $result = &mt('[_1] Do not change login data', + my $result = ''; return $result; } @@ -1600,14 +1601,15 @@ sub authform_kerberos{ my $jscall = "javascript:changed_radio('krb',$in{'formname'});"; my $result .= &mt ('[_1] Kerberos authenticated with domain [_2] '. - '[_3] Version 4 [_4] Version 5', - '', - '', - '', - ''); + ''); return $result; } @@ -1632,9 +1634,9 @@ sub authform_internal{ my $jscall = "javascript:changed_radio('int',$args{'formname'});"; my $result.=&mt ('[_1] Internally authenticated (with initial password [_2])', - '', - ''); return $result; } @@ -1659,9 +1661,9 @@ sub authform_local{ my $jscall = "javascript:changed_radio('loc',$in{'formname'});"; my $result.=&mt('[_1] Local Authentication with argument [_2]', - '', - ''); return $result; } @@ -1675,9 +1677,9 @@ sub authform_filesystem{ my $jscall = "javascript:changed_radio('fsys',$in{'formname'});"; my $result.= &mt ('[_1] Filesystem Authenticated (with initial password [_2])', - '', - ''); return $result; } @@ -3018,11 +3020,10 @@ Returns number of sections. sub get_sections { my ($cdom,$cnum,$sectioncount,$possible_roles) = @_; if (!($cdom && $cnum)) { return 0; } - my $cid = $cdom.'_'.$cnum; my $numsections = 0; if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) { - my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum); + my ($classlist) = &Apache::loncoursedata::get_classlist($cdom,$cnum); my $sec_index = &Apache::loncoursedata::CL_SECTION(); my $status_index = &Apache::loncoursedata::CL_STATUS(); while (my ($student,$data) = each %$classlist) { @@ -3062,13 +3063,12 @@ Retrieves usernames:domains for users in 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, +1. course domain +2. course number +3. 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). +4. reference to array of permissible roles +5. 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. @@ -3078,41 +3078,41 @@ values set to access type. ############################################### sub get_course_users { - my ($course_id,$cdom,$cnum,$types,$roles,$users) = @_; + my ($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})) { + 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($cdom,$cnum); + my $now = time; + 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) { + if ($$classlist{$student}[$endidx] <= $now) { 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 '')) { + if (($$classlist{$student}[$startidx] > $now) && ($$classlist{$student}[$endidx] > $now) || ($$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 (($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}) { + foreach my $type (keys(%{$types})) { if ($status eq $type) { $$users{$role}{$user} = $type; } @@ -3120,6 +3120,15 @@ sub get_course_users { } } } + if (grep/^ow$/,@{$roles}) { + if ((defined($cdom)) && (defined($cnum))) { + my %csettings = &Apache::lonnet::get('environment',['internal.courseowner'],$cdom,$cnum); + if ( defined($csettings{'internal.courseowner'}) ) { + my $owner = $csettings{'internal.courseowner'}; + $$users{'ow'}{$owner.':'.$cdom} = 'any'; + } + } + } } return; } @@ -3709,7 +3718,7 @@ the routine &Apache::lonnet::transfer_pr my $uniq=0; sub get_cgi_id { $uniq=($uniq+1)%100000; - return (time.'_'.$uniq); + return (time.'_'.$$.'_'.$uniq); } ############################################################