--- loncom/interface/loncreateuser.pm 2007/08/26 21:09:43 1.179 +++ loncom/interface/loncreateuser.pm 2007/08/31 03:21:27 1.180 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.179 2007/08/26 21:09:43 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.180 2007/08/31 03:21:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2241,14 +2241,18 @@ sub user_search_result { } } } + if ($response ne '') { + $response = ''.$response.''; + } if ($srch->{'srchin'} eq 'instd') { my $instd_chk = &directorysrch_check($srch); if ($instd_chk ne 'ok') { - $response = $instd_chk; + $response = ''.$instd_chk.''. + '
'.&mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').'

'; } } if ($response ne '') { - return ($currstate,''.$response.''); + return ($currstate,$response); } if ($srch->{'srchby'} eq 'uname') { if (($srch->{'srchin'} eq 'dom') || ($srch->{'srchin'} eq 'crs')) { @@ -2257,7 +2261,8 @@ sub user_search_result { my $uhome=&Apache::lonnet::homeserver($srch->{'srchterm'},$srch->{'srchdomain'}); if ($uhome eq 'no_host') { my $domdesc = &Apache::lonnet::domain($env{'request.role.domain'},'description'); - $response = &mt('New users can only be created in the domain to which you current role belongs - [_1].',$env{'request.role.domain'}.' ('.$domdesc.')'); + my $showdom = &display_domain_info($env{'request.role.domain'}); + $response = &mt('New users can only be created in the domain to which your current role belongs - [_1].',$showdom); } else { $currstate = 'modify'; } @@ -2397,13 +2402,14 @@ sub directorysrch_check { my $response; my %dom_inst_srch = &Apache::lonnet::get_dom('configuration', ['directorysrch'],$srch->{'srchdomain'}); + my $showdom = &display_domain_info($srch->{'srchdomain'}); if (ref($dom_inst_srch{'directorysrch'}) eq 'HASH') { if (!$dom_inst_srch{'directorysrch'}{'available'}) { - return &mt('Institutional directory search unavailable in domain: [_1]',$srch->{'srchdomain'}); + return &mt('Institutional directory search is not available in domain: [_1]',$showdom); } if ($dom_inst_srch{'directorysrch'}{'localonly'}) { if ($env{'request.role.domain'} ne $srch->{'srchdomain'}) { - return &mt('Insitutional directory search in domain: [_1] is only allowed for users with a current role in the domain.',$srch->{'srchdomain'}); + return &mt('Institutional directory search in domain: [_1] is only allowed for users with a current role in the domain.',$showdom); } my @usertypes = split(/:/,$env{'environment.inststatus'}); if (!@usertypes) { @@ -2424,13 +2430,13 @@ sub directorysrch_check { push (@longtypes,$insttypes->{$item}); } my $insttype_str = join(', ',@longtypes); - return &mt('Directory search in domain: [_1] is unavailable to your user type: ',$srch->{'srchdomain'}).$insttype_str; + return &mt('Institutional directory search in domain: [_1] is not available to your user type: ',$showdom).$insttype_str; } } else { $can_search = 1; } } else { - return &mt('Directory search has not been configured for domain: [_1]',$srch->{'srchdomain'}); + return &mt('Institutional directory search has not been configured for domain: [_1]',$showdom); } my %longtext = &Apache::lonlocal::texthash ( uname => 'username', @@ -2443,10 +2449,10 @@ sub directorysrch_check { if ($can_search) { if (ref($dom_inst_srch{'directorysrch'}{'searchby'}) eq 'ARRAY') { if (!grep(/^\Q$srch->{'srchby'}\E$/,@{$dom_inst_srch{'directorysrch'}{'searchby'}})) { - return &mt('Directory search in domain: [_1] is not available for searching by "[_2]"',$srch->{'srchdomain'},$longtext{$srch->{'srchby'}}); + return &mt('Institutional directory search in domain: [_1] is not available for searching by "[_2]"',$showdom,$longtext{$srch->{'srchby'}}); } } else { - return &mt('Directory search in domain: [_1] is not available.', $srch->{'srchdomain'}); + return &mt('Institutional directory search in domain: [_1] is not available.', $showdom); } } if ($can_search) { @@ -2454,7 +2460,7 @@ sub directorysrch_check { if (grep(/^\Q$srch->{'srchtype'}\E/,@{$dom_inst_srch{'directorysrch'}{'searchtypes'}})) { return 'ok'; } else { - return &mt('Directory search in domain [_1] is not available for the requested search type: "[_2]"',$srch->{'srchdomain'},$longtext{$srch->{'srchtype'}}); + return &mt('Institutional directory search in domain [_1] is not available for the requested search type: "[_2]"',$showdom,$longtext{$srch->{'srchtype'}}); } } else { if ((($dom_inst_srch{'directorysrch'}{'searchtypes'} eq 'specify') && @@ -2462,7 +2468,7 @@ sub directorysrch_check { ($dom_inst_srch{'directorysrch'}{'searchtypes'} eq $srch->{'srchtype'})) { return 'ok'; } else { - return &mt('Directory search in domain [_1] is not available for the requested search type: "[_2]"',$srch->{'srchdomain'},$longtext{$srch->{'srchtype'}}); + return &mt('Institutional directory search in domain [_1] is not available for the requested search type: "[_2]"',$showdom,$longtext{$srch->{'srchtype'}}); } } } @@ -2491,26 +2497,35 @@ sub build_search_response { 'lastname' => 'last name', 'lastfirst' => 'last name, first name', 'crs' => 'this course', - 'dom' => 'this domain', - 'instd' => "your institution's directory", + 'dom' => 'LON-CAPA domain: ', + 'instd' => 'the institutional directory for domain: ', ); my %single = ( + begins => 'A match', contains => 'A match', - exact => 'An exact match', + exact => 'An exact match', ); my %nomatch = ( + begins => 'No match', contains => 'No match', - exact => 'No exact match', + exact => 'No exact match', ); if (keys(%srch_results) > 1) { $currstate = 'select'; } else { if (keys(%srch_results) == 1) { $currstate = 'modify'; - $response = &mt("$single{$srch->{'srchtype'}} was found for this $names{$srch->{'srchby'}} ([_1]) in $names{$srch->{'srchin'}}.",$srch->{'srchterm'}); + $response = &mt("$single{$srch->{'srchtype'}} was found for the $names{$srch->{'srchby'}} ([_1]) in $names{$srch->{'srchin'}}.",$srch->{'srchterm'}); + if ($srch->{'srchin'} eq 'dom' || $srch->{'srchin'} eq 'instd') { + $response .= &display_domain_info($srch->{'srchdomain'}); + } } else { - $response = ''.&mt("$nomatch{$srch->{'srchtype'}} found for this $names{$srch->{'srchby'}} ([_1]) in $names{$srch->{'srchin'}}.",$srch->{'srchterm'}).''; + $response = ''.&mt("$nomatch{$srch->{'srchtype'}} found for the $names{$srch->{'srchby'}} ([_1]) in $names{$srch->{'srchin'}}",$srch->{'srchterm'}); + if ($srch->{'srchin'} eq 'dom' || $srch->{'srchin'} eq 'instd') { + $response .= &display_domain_info($srch->{'srchdomain'}); + } + $response .= ''; if ($srch->{'srchin'} ne 'alc') { $forcenewuser = 1; my $cansrchinst = 0; @@ -2522,22 +2537,37 @@ sub build_search_response { } } } - if (($srch->{'srchby'} eq 'lastfirst') || - ($srch->{'srchby'} eq 'lastname')) { - if ($srch->{'srchin'} eq 'crs') { - $response .= '
'.&mt('You may want to broaden your search to the whole domain.'); - } elsif ($srch->{'srchin'} eq 'dom') { - if ($cansrchinst) { - $response .= '
'.&mt('You may want to broaden your search to a search of the institutional directory for this domain.'); - } + if ((($srch->{'srchby'} eq 'lastfirst') || + ($srch->{'srchby'} eq 'lastname')) && + ($srch->{'srchin'} eq 'dom')) { + if ($cansrchinst) { + $response .= '
'.&mt('You may want to broaden your search to a search of the institutional directory for the domain.'); } } + if ($srch->{'srchin'} eq 'crs') { + $response .= '
'.&mt('You may want to broaden your search to the selected LON-CAPA domain.'); + } + } + if (!($srch->{'srchby'} eq 'uname' && $srch->{'srchin'} eq 'dom' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchdomain'} eq $env{'request.role.domain'})) { + $response .= '
'.&mt("To add a new user (you can only create new users in your current role's domain - [_1]) ...",$env{'request.role.domain'}).'
'; } } } return ($currstate,$response,$forcenewuser); } +sub display_domain_info { + my ($dom) = @_; + my $output = $dom; + if ($dom ne '') { + my $domdesc = &Apache::lonnet::domain($dom,'description'); + if ($domdesc ne '') { + $output .= ' ('.$domdesc.')'; + } + } + return $output; +} + sub crumb_utilities { my %elements = ( crtuser => {