--- loncom/interface/lonrequestcourse.pm 2016/04/04 01:07:17 1.97
+++ loncom/interface/lonrequestcourse.pm 2017/08/11 00:24:53 1.101
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Request a course
#
-# $Id: lonrequestcourse.pm,v 1.97 2016/04/04 01:07:17 raeburn Exp $
+# $Id: lonrequestcourse.pm,v 1.101 2017/08/11 00:24:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2109,14 +2109,27 @@ sub print_personnel_menu {
$output .= &Apache::lonhtmlcommon::row_headline().
'
'.&Apache::loncommon::help_open_topic('Course_Request_Personnel').' '.$lt{$crstype}.' '.&mt('Include other personnel?').'
';
}
- for (my $i=0; $i<$persontotal; $i++) {
+ my $cansearch = 1;
+ my @alldoms = &Apache::lonnet::all_domains();
+ if (@alldoms == 1) {
+ my %domsrch = &Apache::lonnet::get_dom('configuration',
+ ['directorysrch'],$alldoms[0]);
+ if (ref($domsrch{'directorysrch'}) eq 'HASH') {
+ if ((!$domsrch{'directorysrch'}{'available'}) &&
+ ($domsrch{'directorysrch'}{'lcavailable'} eq '0')) {
+ $cansearch = 0;
+ }
+ }
+ }
+ my ($trusted,$untrusted) = &Apache::lonnet::trusted_domains('enroll',$dom);
+ for (my $i=0; $i<$persontotal; $i++) {
my @linkargs = map { 'person_'.$i.'_'.$_ } (@items);
my $linkargstr = join("','",@linkargs);
my $uname_form = '';
my $onchange = 'javascript:fix_domain('."'$formname','person_".$i."_dom',".
"'person_".$i."_hidedom','person_".$i."_uname'".');';
my $udom_form = &Apache::loncommon::select_dom_form($dom,'person_'.$i.'_dom','',
- 1,$onchange).
+ 1,$onchange,undef,$trusted,$untrusted).
'';
my %form_elems;
foreach my $item (@items) {
@@ -2133,9 +2146,14 @@ sub print_personnel_menu {
}
$sectionselector .= $newtitle.
''."\n";
- my $usersrchlinktxt = &mt('Search for user');
- my $usersrchlink = &Apache::loncommon::selectuser_link($formname,@linkargs,$dom,
- $usersrchlinktxt);
+ my $usersrchlink;
+ if ($cansearch) {
+ my $usersrchlinktxt = &mt('Search for user');
+ $usersrchlink = &Apache::loncommon::selectuser_link($formname,@linkargs,$dom,
+ $usersrchlinktxt);
+ } else {
+ $usersrchlink = ' ';
+ }
my $userchklinktxt = &mt('Check username');
my $userchklink = &Apache::loncommon::selectuser_link($formname,@linkargs,$dom,
$userchklinktxt,'checkusername');
@@ -3168,6 +3186,8 @@ sub clone_form {
my $type = 'Course';
if ($crstype eq 'community') {
$type = 'Community';
+ } elsif ($crstype eq 'placement') {
+ $type = 'Placement';
}
my %lt = &clone_text();
my $output .=
@@ -3333,18 +3353,23 @@ sub get_course_dom {
return $env{'user.domain'};
}
}
- my @possible_doms;
+ my (@possible_doms,%willtrust,%trustchecked);
foreach my $type (@{$types}) {
my $dom_str = $env{'environment.reqcrsotherdom.'.$type};
if ($dom_str ne '') {
my @domains = split(',',$dom_str);
foreach my $entry (@domains) {
my ($extdom,$extopt) = split(':',$entry);
- if ($extdom eq $env{'request.role.domain'}) {
- return $extdom;
- }
- unless(grep(/^\Q$extdom\E$/,@possible_doms)) {
- push(@possible_doms,$extdom);
+ unless ($trustchecked{$extdom}) {
+ $willtrust{$extdom} = &Apache::lonnet::will_trust('reqcrs',$env{'user.domain'},$extdom);
+ }
+ if ($willtrust{$extdom}) {
+ if ($extdom eq $env{'request.role.domain'}) {
+ return $extdom;
+ }
+ unless(grep(/^\Q$extdom\E$/,@possible_doms)) {
+ push(@possible_doms,$extdom);
+ }
}
}
}
@@ -4578,7 +4603,6 @@ sub print_textbook_form {
owner => $courseinfo{'internal.courseowner'},
releaserequired => $courseinfo{'internal.releaserequired'},
type => $courseinfo{'type'},
- };
}
}