--- loncom/auth/lonroles.pm 2017/03/13 20:43:13 1.269.2.32 +++ loncom/auth/lonroles.pm 2017/10/14 22:27:40 1.269.2.34.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.269.2.32 2017/03/13 20:43:13 raeburn Exp $ +# $Id: lonroles.pm,v 1.269.2.34.2.1 2017/10/14 22:27:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -590,6 +590,25 @@ ENDENTERKEY {$env{'user.name'}.':'.$env{'user.domain'}. ':'.$csec.':'.$role => $now},$cdom,$cnum); } + if (($env{"environment.internal.$cdom.$cnum.$role.adhoc"}) && + (&Apache::lonnet::allowed('vxc',$cdom.'_'.$cnum))) { + my $owner = $env{'course.'.$cdom.'_'.$cnum.'.internal.courseowner'}; + my @coowners = split(/,/,$env{'course.'.$env{'request.course.id'}.'.internal.co-owners'}); + my %auaccess; + foreach my $user ($owner,@coowners) { + my ($cpname,$cpdom) = split(/:/,$user); + my %auroles = &Apache::lonnet::get_my_roles($cpname,$cpdom,'userroles',undef,['au','ca','aa'],[$cdom]); + foreach my $key (keys(%auroles)) { + my ($auname,$audom,$aurole) = split(/:/,$key); + if ($aurole eq 'au') { + $auaccess{$cpname} = 1; + } else { + $auaccess{$auname} = 1; + } + } + } + &Apache::lonnet::appenv({'request.course.adhocsrcaccess' => join(',',sort(keys(%auaccess))) }); + } my ($feeds,$syllabus_time); &Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds); &Apache::lonnet::appenv({'request.course.feeds' => $feeds}); @@ -1033,9 +1052,11 @@ ENDHEADER # ----------------------------------------------------------------------- Table if (($numdc > 0) || (($numhelpdesk > 0) && ($numadhoc > 0))) { - $r->print(&coursepick_jscript()); - $r->print(&Apache::loncommon::coursebrowser_javascript(). - &Apache::loncommon::authorbrowser_javascript()); + $r->print(&coursepick_jscript(). + &Apache::loncommon::coursebrowser_javascript()); + } + if ($numdc > 0) { + $r->print(&Apache::loncommon::authorbrowser_javascript()); } unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { @@ -1991,9 +2012,9 @@ sub adhoc_roles_row { my ($dcdom,$rowtype) = @_; my $output = &Apache::loncommon::continue_data_table_row() .' ' - .&mt('[_1]Ad hoc[_2] roles in domain [_3] --' + .&mt('[_1]Ad hoc[_2] roles in domain [_3]' ,'','',$dcdom) - .' '; + .' -- '; my $role = 'cc'; my $selectcclink = &courselink($dcdom,$rowtype,$role); my $ccrole = &Apache::lonnet::plaintext('co',undef,undef,1); @@ -2021,9 +2042,9 @@ sub adhoc_customroles_row { if (scalar(keys(%{$domdefaults{'adhocroles'}})) > 0) { return &Apache::loncommon::continue_data_table_row() .' ' - .&mt('[_1]Ad hoc[_2] course/community roles in domain [_3] --', + .&mt('[_1]Ad hoc[_2] course/community roles in domain [_3]', '','',$dhdom) - .' '.&courselink($dhdom,$rowtype,$role); + .' -- '.&courselink($dhdom,$rowtype,$role); } } return;