--- loncom/interface/loncreateuser.pm 2010/09/19 16:44:44 1.329.2.4 +++ loncom/interface/loncreateuser.pm 2010/03/21 21:05:42 1.337 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.329.2.4 2010/09/19 16:44:44 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.337 2010/03/21 21:05:42 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -219,7 +219,7 @@ END_SCRIPT sub build_tools_display { my ($ccuname,$ccdomain,$context) = @_; my (@usertools,%userenv,$output,@options,%validations,%reqtitles,%reqdisplay, - $colspan); + $colspan,$isadv,%domconfig); my %lt = &Apache::lonlocal::texthash ( 'blog' => "Personal User Blog", 'aboutme' => "Personal Information Page", @@ -243,6 +243,9 @@ sub build_tools_display { %reqtitles = &courserequest_titles(); %reqdisplay = &courserequest_display(); $colspan = ' colspan="2"'; + %domconfig = + &Apache::lonnet::get_dom('configuration',['requestcourses'],$ccdomain); + $isadv = &Apache::lonnet::is_advanced_user($ccuname,$ccdomain); } else { %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, 'tools.aboutme','tools.portfolio','tools.blog'); @@ -289,7 +292,14 @@ sub build_tools_display { &Apache::loncommon::start_data_table_row()."\n"; if ($context eq 'requestcourses') { my ($curroption,$currlimit); - $curroption = $userenv{$context.'.'.$item}; + if ($userenv{$context.'.'.$item} ne '') { + $curroption = $userenv{$context.'.'.$item}; + } else { + my (@inststatuses); + $curroption = + &Apache::loncoursequeueadmin::get_processtype($ccuname,$ccdomain,$isadv,$ccdomain, + $item,\@inststatuses,\%domconfig); + } if (!$curroption) { $curroption = 'norequest'; } @@ -472,7 +482,6 @@ sub print_username_entry_form { my ($r,$context,$response,$srch,$forcenewuser,$crstype) = @_; my $defdom=$env{'request.role.domain'}; my $formtoset = 'crtuser'; - my $is_custom = &Apache::loncommon::needs_gci_custom(); if (exists($env{'form.startrolename'})) { $formtoset = 'docustom'; $env{'form.rolename'} = $env{'form.startrolename'}; @@ -498,14 +507,8 @@ sub print_username_entry_form { 'onload' => "javascript:setFormElements(document.$formtoset)", ); my %breadcrumb_text = &singleuser_breadcrumb($crstype); - my $title = 'User Management'; - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } my $start_page = - &Apache::loncommon::start_page($title, + &Apache::loncommon::start_page('User Management', $jscript,{'add_entries' => \%loaditems,}); if ($env{'form.action'} eq 'custom') { &Apache::lonhtmlcommon::add_breadcrumb @@ -523,7 +526,7 @@ sub print_username_entry_form { } elsif ($env{'form.action'} eq 'singlestudent') { $helpitem = 'Course_Add_Student'; } - my $crumbs = &Apache::lonhtmlcommon::breadcrumbs($title, + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('User Management', $helpitem); my %lt=&Apache::lonlocal::texthash( 'srst' => 'Search for a user and enroll as a student', @@ -667,7 +670,7 @@ $userpicker ENDBLOCK if ($env{'form.phase'} eq '') { my $defdom=$env{'request.role.domain'}; - my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain','',1); + my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain'); my %lt=&Apache::lonlocal::texthash( 'enro' => 'Enroll one student', 'enrm' => 'Enroll one member', @@ -716,7 +719,7 @@ $showresponse - + @@ -761,7 +764,6 @@ sub print_user_selection_page { my ($r,$response,$srch,$srch_results,$srcharray,$context,$opener_elements,$crstype) = @_; my @fields = ('username','domain','lastname','firstname','permanentemail'); my $sortby = $env{'form.sortby'}; - my $is_custom = &Apache::loncommon::needs_gci_custom(); if (!grep(/^\Q$sortby\E$/,@fields)) { $sortby = 'lastname'; @@ -800,13 +802,7 @@ ENDSCRIPT if ($context eq 'requestcrs') { $r->print('
'); } else { - my $title = 'User Management'; - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } - $r->print(&Apache::loncommon::start_page($title,$jscript)); + $r->print(&Apache::loncommon::start_page('User Management',$jscript)); my %breadcrumb_text = &singleuser_breadcrumb($crstype); &Apache::lonhtmlcommon::add_breadcrumb @@ -817,13 +813,13 @@ ENDSCRIPT text=>$breadcrumb_text{'userpicked'}, faq=>282,bug=>'Instructor Interface',}); if ($env{'form.action'} eq 'singleuser') { - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title, + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management', 'Course_Change_Privileges')); $r->print("$lt{'usrch'}
"); $r->print(&entry_form($srch->{'srchdomain'},$srch,undef,$context,undef,$crstype)); $r->print('

'.$lt{'usel'}.'

'); } elsif ($env{'form.action'} eq 'singlestudent') { - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title, + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management', 'Course_Add_Student')); $r->print($jscript.""); if ($crstype eq 'Community') { @@ -932,21 +928,12 @@ sub print_user_modification_page { my %abv_auth = &auth_abbrev(); my (%rulematch,%inst_results,$newuser,%alerts,%curr_rules,%got_rules); my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); - my $is_custom = &Apache::loncommon::needs_gci_custom(); - if ($is_custom) { - if ($uhome eq 'no_host') { - my $lc_ccuname = lc($ccuname); - if ($lc_ccuname ne $ccuname) { - $uhome = &Apache::lonnet::homeserver($lc_ccuname,$ccdomain); - $ccuname = $lc_ccuname; - } - } - } if ($uhome eq 'no_host') { + my $usertype; my ($rules,$ruleorder) = &Apache::lonnet::inst_userrules($ccdomain,'username'); - my $usertype = - &Apache::lonuserutils::check_usertype($ccdomain,$ccuname,$rules); + $usertype = + &Apache::lonuserutils::check_usertype($ccdomain,$ccuname,$rules); my $cancreate = &Apache::lonuserutils::can_create_user($ccdomain,$context, $usertype); @@ -956,26 +943,17 @@ sub print_user_modification_page { official => 'institutional', unofficial => 'non-institutional', ); - if ($ccdomain eq 'gci') { - $usertypetext{'unofficial'} = 'institutional', - } my $response; if ($env{'form.origform'} eq 'crtusername') { - if ($is_custom) { - $response = ''.&mt('Invalid format for username for new user: [_1]',''.$ccuname.''). - '
'; - } else { - $response = ''.&mt('No match was found for the username ([_1]) in LON-CAPA domain: [_2]',$ccuname,$ccdomain).'
'; - } + $response = ''.&mt('No match found for the username [_1] in LON-CAPA domain: [_2]',''.$ccuname.'',$ccdomain). + '
'; } $response .= '

' .&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.") - .'
'; - if ($ccdomain eq 'gcitest') { - $response .= &mt('Enter a valid e-mail address as the username for the new user.').' '.&mt('Please contact the [_1]helpdesk[_2] for assistance.' - ,'','') - .'


'; - } + .' ' + .&mt('Please contact the [_1]helpdesk[_2] for assistance.' + ,'','') + .'


'; $env{'form.phase'} = ''; &print_username_entry_form($r,$context,$response,undef,undef,$crstype); return; @@ -1026,14 +1004,8 @@ sub print_user_modification_page { if ($env{'form.popup'}) { $args->{'no_nav_bar'} = 1; } - my $title = 'User Management'; - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } my $start_page = - &Apache::loncommon::start_page($title,$js,$args); + &Apache::loncommon::start_page('User Management',$js,$args); my %breadcrumb_text = &singleuser_breadcrumb($crstype); &Apache::lonhtmlcommon::add_breadcrumb ({href=>"javascript:backPage($form)", @@ -1054,7 +1026,7 @@ sub print_user_modification_page { if ($env{'form.action'} eq 'singlestudent') { $helpitem = 'Course_Add_Student'; } - my $crumbs = &Apache::lonhtmlcommon::breadcrumbs($title, + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('User Management', $helpitem); my $forminfo =<<"ENDFORMINFO"; @@ -1483,6 +1455,8 @@ sub display_existing_roles { $newkey .= '_'.$newrole; if ($start ne '' && $end ne '') { $newvalue .= '_'.$end.'_'.$start; + } elsif ($end ne '') { + $newvalue .= '_'.$end; } $rolesdump{$newkey} = $newvalue; } @@ -2091,9 +2065,22 @@ sub personal_data_display { if ($canmodify_status{'inststatus'}) { $shown = &pick_inst_statuses($userenv{'inststatus'},$usertypes,$types); } else { - $shown .= $userenv{'inststatus'}; if ($userenv{'inststatus'} eq '') { $hiderow = 1; + } else { + my @showitems; + foreach my $item ( map { &unescape($_); } split(':',$userenv{'inststatus'})) { + if (exists($usertypes->{$item})) { + push(@showitems,$usertypes->{$item}); + } else { + push(@showitems,$item); + } + } + if (@showitems) { + $shown = join(', ',@showitems); + } else { + $hiderow = 1; + } } } if (!$hiderow) { @@ -2189,8 +2176,7 @@ sub get_inststatuses { # ================================================================= Phase Three sub update_user_data { - my ($r,$context,$crstype) = @_; - my $is_custom = &Apache::loncommon::needs_gci_custom(); + my ($r,$context,$crstype) = @_; my $uhome=&Apache::lonnet::homeserver($env{'form.ccuname'}, $env{'form.ccdomain'}); # Error messages @@ -2243,13 +2229,7 @@ sub update_user_data { if ($env{'form.action'} eq 'singlestudent') { $helpitem = 'Course_Add_Student'; } - my $title = 'User Management'; - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title, + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management', $helpitem)); $r->print(&update_result_form($uhome)); # Check Inputs @@ -2318,10 +2298,14 @@ sub update_user_data { $r->print('

'.&mt('User [_1] in domain [_2]', $env{'form.ccuname'}, $env{'form.ccdomain'}).'

'); my (%alerts,%rulematch,%inst_results,%curr_rules); + my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); my @usertools = ('aboutme','blog','portfolio'); my @requestcourses = ('official','unofficial','community'); my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($env{'form.ccdomain'}); + my %canmodify_status = + &Apache::lonuserutils::can_modify_userinfo($context,$env{'form.ccdomain'}, + ['inststatus']); if ($env{'form.makeuser'}) { $r->print('

'.&mt('Creating new account.').'

'); # Check for the authentication mode and password @@ -2381,49 +2365,50 @@ sub update_user_data { $r->print(&mt('Generating user').': '.$result); $uhome = &Apache::lonnet::homeserver($env{'form.ccuname'}, $env{'form.ccdomain'}); - my (%changeHash,%newcustom,%changed); + my (%changeHash,%newcustom,%changed,%changedinfo); if ($uhome ne 'no_host') { - if ($env{'form.customquota'} == 1) { - if ($env{'form.portfolioquota'} eq '') { - $newcustom{'quota'} = 0; - } else { - $newcustom{'quota'} = $env{'form.portfolioquota'}; - $newcustom{'quota'} =~ s/[^\d\.]//g; + if ($context eq 'domain') { + if ($env{'form.customquota'} == 1) { + if ($env{'form.portfolioquota'} eq '') { + $newcustom{'quota'} = 0; + } else { + $newcustom{'quota'} = $env{'form.portfolioquota'}; + $newcustom{'quota'} =~ s/[^\d\.]//g; + } + $changed{'quota'} = "a_admin($newcustom{'quota'},\%changeHash); } - $changed{'quota'} = "a_admin($newcustom{'quota'},\%changeHash); - } - foreach my $item (@usertools) { - if ($env{'form.custom'.$item} == 1) { - $newcustom{$item} = $env{'form.tools_'.$item}; - $changed{$item} = &tool_admin($item,$newcustom{$item}, - \%changeHash,'tools'); + foreach my $item (@usertools) { + if ($env{'form.custom'.$item} == 1) { + $newcustom{$item} = $env{'form.tools_'.$item}; + $changed{$item} = &tool_admin($item,$newcustom{$item}, + \%changeHash,'tools'); + } } - } - foreach my $item (@requestcourses) { - $newcustom{$item} = $env{'form.crsreq_'.$item}; - if ($env{'form.crsreq_'.$item} eq 'autolimit') { - $newcustom{$item} .= '='; - unless ($env{'form.crsreq_'.$item.'_limit'} =~ /\D/) { - $newcustom{$item} .= $env{'form.crsreq_'.$item.'_limit'}; + foreach my $item (@requestcourses) { + $newcustom{$item} = $env{'form.crsreq_'.$item}; + if ($env{'form.crsreq_'.$item} eq 'autolimit') { + $newcustom{$item} .= '='; + unless ($env{'form.crsreq_'.$item.'_limit'} =~ /\D/) { + $newcustom{$item} .= $env{'form.crsreq_'.$item.'_limit'}; + } } + $changed{$item} = &tool_admin($item,$newcustom{$item}, + \%changeHash,'requestcourses'); } - $changed{$item} = &tool_admin($item,$newcustom{$item}, - \%changeHash,'requestcourses'); } - if (exists($env{'form.inststatus'})) { - my @inststatuses = &Apache::loncommon::get_env_multiple('form.inststatus'); - if (@inststatuses > 0) { - $changeHash{'inststatus'} = join(',',@inststatuses); - $changed{'inststatus'} = $changeHash{'inststatus'}; + if ($canmodify_status{'inststatus'}) { + if (exists($env{'form.inststatus'})) { + my @inststatuses = &Apache::loncommon::get_env_multiple('form.inststatus'); + if (@inststatuses > 0) { + $changeHash{'inststatus'} = join(',',@inststatuses); + $changed{'inststatus'} = $changeHash{'inststatus'}; + } } } if (keys(%changed)) { - $changeHash{'firstname'} = $env{'form.cfirstname'}; - $changeHash{'middlename'} = $env{'form.cmiddlename'}; - $changeHash{'lastname'} = $env{'form.clastname'}; - $changeHash{'generation'} = $env{'form.cgeneration'}; - $changeHash{'id'} = $env{'form.cid'}; - $changeHash{'permanentemail'} = $env{'form.cpermanentemail'}; + foreach my $item (@userinfo) { + $changeHash{$item} = $env{'form.c'.$item}; + } my $chgresult = &Apache::lonnet::put('environment',\%changeHash, $env{'form.ccdomain'},$env{'form.ccuname'}); @@ -2452,7 +2437,7 @@ sub update_user_data { } } ## - my (@userroles,%userupdate,$cnum,$cdom,$crstype,$namechanged); + my (@userroles,%userupdate,$cnum,$cdom,$crstype,%namechanged); if ($context eq 'course') { ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity(); $crstype = &Apache::loncommon::course_type($cdom.'_'.$cnum); @@ -2542,7 +2527,6 @@ sub update_user_data { push(@longroles,&Apache::lonnet::plaintext($role,$crstype)); } } - my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); my %canmodify = &Apache::lonuserutils::can_modify_userinfo($context,$env{'form.ccdomain'},\@userinfo,\@userroles); foreach my $item (@userinfo) { # Strip leading and trailing whitespace @@ -2589,40 +2573,46 @@ sub update_user_data { } } my ($quotachanged,$oldportfolioquota,$newportfolioquota,$oldinststatus, - $inststatus,$newinststatus,$oldisdefault,$newisdefault,$olddefquotatext, - $newdefquotatext,%oldaccess,%oldaccesstext,%newaccess,%newaccesstext, - $oldinststatuses,$newinststatuses); - my ($defquota,$settingstatus) = - &Apache::loncommon::default_quota($env{'form.ccdomain'},$inststatus); - my ($showquota,$showtools,$showrequestcourses,$showinststatus,$showreqotherdom); + $newinststatus,$oldisdefault,$newisdefault,%oldsettings, + %oldsettingstext,%newsettings,%newsettingstext,@disporder); + @disporder = ('inststatus'); + if ($env{'request.role.domain'} eq $env{'form.ccdomain'}) { + push(@disporder,'requestcourses'); + } else { + push(@disporder,'reqcrsotherdom'); + } + push(@disporder,('quota','tools')); + my ($defquota,my $settingstatus) = + &Apache::loncommon::default_quota($env{'form.ccdomain'},$oldinststatus); + my %canshow; if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) { - $showquota = 1; + $canshow{'quota'} = 1; } if (&Apache::lonnet::allowed('mut',$env{'form.ccdomain'})) { - $showtools = 1; + $canshow{'tools'} = 1; } if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) { - $showrequestcourses = 1; + $canshow{'requestcourses'} = 1; } elsif (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { - $showreqotherdom = 1; + $canshow{'reqcrsotherdom'} = 1; } if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) { - $showinststatus = 1; + $canshow{'inststatus'} = 1; } my (%changeHash,%changed); $oldinststatus = $userenv{'inststatus'}; if ($oldinststatus eq '') { - $oldinststatuses = $othertitle; + $oldsettings{'inststatus'} = $othertitle; } else { if (ref($usertypes) eq 'HASH') { - $oldinststatuses = join(', ',map{ $usertypes->{ &unescape($_) }; } (split(/:/,$userenv{'inststatus'}))); + $oldsettings{'inststatus'} = join(', ',map{ $usertypes->{ &unescape($_) }; } (split(/:/,$userenv{'inststatus'}))); } else { - $oldinststatuses = join(', ',map{ &unescape($_); } (split(/:/,$userenv{'inststatus'}))); + $oldsettings{'inststatus'} = join(', ',map{ &unescape($_); } (split(/:/,$userenv{'inststatus'}))); } } $changeHash{'inststatus'} = $userenv{'inststatus'}; - my %canmodify_inststatus = &Apache::lonuserutils::can_modify_userinfo($context,$env{'form.ccdomain'},['inststatus'],\@userroles); - if ($canmodify_inststatus{'inststatus'}) { + if ($canmodify_status{'inststatus'}) { + $canshow{'inststatus'} = 1; if (exists($env{'form.inststatus'})) { my @inststatuses = &Apache::loncommon::get_env_multiple('form.inststatus'); if (@inststatuses > 0) { @@ -2632,84 +2622,82 @@ sub update_user_data { $changed{'inststatus'} = $newinststatus; } if (ref($usertypes) eq 'HASH') { - $newinststatuses = join(', ',map{ $usertypes->{$_}; } (@inststatuses)); + $newsettings{'inststatus'} = join(', ',map{ $usertypes->{$_}; } (@inststatuses)); } else { - $newinststatuses = join(', ',map{ $usertypes->{$_}; } (@inststatuses)); - } - } else { - $newinststatus = ''; - $changeHash{'inststatus'} = $newinststatus; - $newinststatuses = $othertitle; - if ($newinststatus ne $oldinststatus) { - $changed{'inststatus'} = $changeHash{'inststatus'}; + $newsettings{'inststatus'} = join(', ',@inststatuses); } } + } else { + $newinststatus = ''; + $changeHash{'inststatus'} = $newinststatus; + $newsettings{'inststatus'} = $othertitle; + if ($newinststatus ne $oldinststatus) { + $changed{'inststatus'} = $changeHash{'inststatus'}; + } } + } elsif ($context ne 'selfcreate') { + $canshow{'inststatus'} = 1; + $newsettings{'inststatus'} = $oldsettings{'inststatus'}; } $changeHash{'portfolioquota'} = $userenv{'portfolioquota'}; - if ($userenv{'portfolioquota'} ne '') { - $oldportfolioquota = $userenv{'portfolioquota'}; - if ($env{'form.customquota'} == 1) { - if ($env{'form.portfolioquota'} eq '') { - $newportfolioquota = 0; + if ($context eq 'domain') { + if ($userenv{'portfolioquota'} ne '') { + $oldportfolioquota = $userenv{'portfolioquota'}; + if ($env{'form.customquota'} == 1) { + if ($env{'form.portfolioquota'} eq '') { + $newportfolioquota = 0; + } else { + $newportfolioquota = $env{'form.portfolioquota'}; + $newportfolioquota =~ s/[^\d\.]//g; + } + if ($newportfolioquota != $oldportfolioquota) { + $changed{'quota'} = "a_admin($newportfolioquota,\%changeHash); + } } else { - $newportfolioquota = $env{'form.portfolioquota'}; - $newportfolioquota =~ s/[^\d\.]//g; - } - if ($newportfolioquota != $oldportfolioquota) { - $changed{'quota'} = "a_admin($newportfolioquota,\%changeHash); + $changed{'quota'} = "a_admin('',\%changeHash); + $newportfolioquota = $defquota; + $newisdefault = 1; } } else { - $changed{'quota'} = "a_admin('',\%changeHash); - $newportfolioquota = $defquota; - $newisdefault = 1; - } - } else { - $oldisdefault = 1; - $oldportfolioquota = $defquota; - if ($env{'form.customquota'} == 1) { - if ($env{'form.portfolioquota'} eq '') { - $newportfolioquota = 0; + $oldisdefault = 1; + $oldportfolioquota = $defquota; + if ($env{'form.customquota'} == 1) { + if ($env{'form.portfolioquota'} eq '') { + $newportfolioquota = 0; + } else { + $newportfolioquota = $env{'form.portfolioquota'}; + $newportfolioquota =~ s/[^\d\.]//g; + } + $changed{'quota'} = "a_admin($newportfolioquota,\%changeHash); } else { - $newportfolioquota = $env{'form.portfolioquota'}; - $newportfolioquota =~ s/[^\d\.]//g; + $newportfolioquota = $defquota; + $newisdefault = 1; } - $changed{'quota'} = "a_admin($newportfolioquota,\%changeHash); + } + if ($oldisdefault) { + $oldsettingstext{'quota'} = &get_defaultquota_text($settingstatus); + } + if ($newisdefault) { + $newsettingstext{'quota'} = &get_defaultquota_text($settingstatus); + } + &tool_changes('tools',\@usertools,\%oldsettings,\%oldsettingstext,\%userenv, + \%changeHash,\%changed,\%newsettings,\%newsettingstext); + if ($env{'form.ccdomain'} eq $env{'request.role.domain'}) { + &tool_changes('requestcourses',\@requestcourses,\%oldsettings,\%oldsettingstext, + \%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); } else { - $newportfolioquota = $defquota; - $newisdefault = 1; + &tool_changes('reqcrsotherdom',\@requestcourses,\%oldsettings,\%oldsettingstext, + \%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); + } + } + foreach my $item (@userinfo) { + if ($env{'form.c'.$item} ne $userenv{$item}) { + $namechanged{$item} = 1; } } - if ($oldisdefault) { - $olddefquotatext = &get_defaultquota_text($settingstatus); - } - if ($newisdefault) { - $newdefquotatext = &get_defaultquota_text($settingstatus); - } - &tool_changes('tools',\@usertools,\%oldaccess,\%oldaccesstext,\%userenv, - \%changeHash,\%changed,\%newaccess,\%newaccesstext); - if ($env{'form.ccdomain'} eq $env{'request.role.domain'}) { - &tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext, - \%userenv,\%changeHash,\%changed,\%newaccess,\%newaccesstext); - } else { - &tool_changes('reqcrsotherdom',\@requestcourses,\%oldaccess,\%oldaccesstext, - \%userenv,\%changeHash,\%changed,\%newaccess,\%newaccesstext); - } - if ($env{'form.cfirstname'} ne $userenv{'firstname'} || - $env{'form.cmiddlename'} ne $userenv{'middlename'} || - $env{'form.clastname'} ne $userenv{'lastname'} || - $env{'form.cgeneration'} ne $userenv{'generation'} || - $env{'form.cid'} ne $userenv{'id'} || - $env{'form.cpermanentemail'} ne $userenv{'permanentemail'} ) { - $namechanged = 1; - } - if (($namechanged) || (keys(%changed) > 0)) { - $changeHash{'firstname'} = $env{'form.cfirstname'}; - $changeHash{'middlename'} = $env{'form.cmiddlename'}; - $changeHash{'lastname'} = $env{'form.clastname'}; - $changeHash{'generation'} = $env{'form.cgeneration'}; - $changeHash{'id'} = $env{'form.cid'}; - $changeHash{'permanentemail'} = $env{'form.cpermanentemail'}; + $oldsettings{'quota'} = $oldportfolioquota.' Mb'; + $newsettings{'quota'} = $newportfolioquota.' Mb'; + if ((keys(%namechanged) > 0) || (keys(%changed) > 0)) { my ($chgresult,$namechgresult); if (keys(%changed) > 0) { $chgresult = @@ -2725,8 +2713,7 @@ sub update_user_data { $newenvhash{'environment.requestcourses.'.$key} = $changeHash{'requestcourses.'.$key}; if ($changeHash{'requestcourses.'.$key} ne '') { - $newenvhash{'environment.canrequest.'.$key} = - $changeHash{'requestcourses.'.$key}; + $newenvhash{'environment.canrequest.'.$key} = 1; } else { $newenvhash{'environment.canrequest.'.$key} = &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, @@ -2740,8 +2727,7 @@ sub update_user_data { $changeHash{'tools.'.$key}; } else { $newenvhash{'environment.availabletools.'.$key} = - &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, - $key,'reload','tools'); + &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, $key,'reload','tools'); } } } @@ -2751,14 +2737,17 @@ sub update_user_data { } } } - if ($namechanged) { - # Make the change + if (keys(%namechanged) > 0) { + foreach my $field (@userinfo) { + $changeHash{$field} = $env{'form.c'.$field}; + } +# Make the change $namechgresult = &Apache::lonnet::modifyuser($env{'form.ccdomain'}, $env{'form.ccuname'},$changeHash{'id'},undef,undef, $changeHash{'firstname'},$changeHash{'middlename'}, $changeHash{'lastname'},$changeHash{'generation'}, - $changeHash{'id'},undef,$changeHash{'permanentemail'}); + $changeHash{'id'},undef,$changeHash{'permanentemail'},undef,\@userinfo); %userupdate = ( lastname => $env{'form.clastname'}, middlename => $env{'form.cmiddlename'}, @@ -2767,139 +2756,13 @@ sub update_user_data { id => $env{'form.cid'}, ); } - if (($namechanged && $namechgresult eq 'ok') || + if (((keys(%namechanged) > 0) && $namechgresult eq 'ok') || ((keys(%changed) > 0) && $chgresult eq 'ok')) { # Tell the user we changed the name - my %lt=&Apache::lonlocal::texthash( - 'uic' => 'User Information Changed', - 'frst' => 'First Name', - 'mddl' => 'Middle Name', - 'lst' => 'Last Name', - 'gen' => 'Generation', - 'id' => 'Student/Employee ID', - 'mail' => 'Permanent e-mail address', - 'disk' => 'Disk space allocated to portfolio files', - 'blog' => 'Blog Availability', - 'aboutme' => 'Personal Information Page Availability', - 'portfolio' => 'Portfolio Availability', - 'official' => 'Can Request Official Courses', - 'unofficial' => 'Can Request Unofficial Courses', - 'community' => 'Can Request Communities', - 'inststatus' => "Affiliation", - 'prvs' => 'Previous Value:', - 'chto' => 'Changed To:' - ); - $r->print('

'.$lt{'uic'}.'

'. - &Apache::loncommon::start_data_table(). - &Apache::loncommon::start_data_table_header_row()); - $r->print(<<"END"); -
- - - - - - -END - if ($showinststatus) { - $r->print(" - \n"); - } - if ($showrequestcourses) { - foreach my $item (@requestcourses) { - $r->print(" - \n"); - } - } elsif ($showreqotherdom) { - foreach my $item (@requestcourses) { - $r->print(" - \n"); - } - } - if ($showquota) { - $r->print(" - \n"); - } - if ($showtools) { - foreach my $item (@usertools) { - $r->print(" - \n"); - } - } - $r->print(&Apache::loncommon::end_data_table_header_row(). - &Apache::loncommon::start_data_table_row()); - $r->print(<<"END"); - - - - - - - -END - if ($showinststatus) { - $r->print(" - \n"); - } - if ($showrequestcourses) { - foreach my $item (@requestcourses) { - $r->print(" - \n"); - } - } elsif ($showreqotherdom) { - foreach my $item (@requestcourses) { - $r->print(" - \n"); - } - } - if ($showquota) { - $r->print(" - \n"); - } - if ($showtools) { - foreach my $item (@usertools) { - $r->print(" - \n"); - } - } - $r->print(&Apache::loncommon::end_data_table_row(). - &Apache::loncommon::start_data_table_row()); - $r->print(<<"END"); - - - - - - - -END - if ($showinststatus) { - $r->print(" - \n"); - } - if ($showrequestcourses) { - foreach my $item (@requestcourses) { - $r->print(" - \n"); - } - } elsif ($showreqotherdom) { - foreach my $item (@requestcourses) { - $r->print(" - \n"); - } - } - if ($showquota) { - $r->print(" - \n"); - } - if ($showtools) { - foreach my $item (@usertools) { - $r->print(" - \n"); - } - } - $r->print(&Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table().'
'); + &display_userinfo($r,1,\@disporder,\%canshow,\@requestcourses, + \@usertools,\%userenv,\%changed,\%namechanged, + \%oldsettings, \%oldsettingstext,\%newsettings, + \%newsettingstext); if ($env{'form.cid'} ne $userenv{'id'}) { &Apache::lonnet::idput($env{'form.ccdomain'}, ($env{'form.ccuname'} => $env{'form.cid'})); @@ -2925,54 +2788,13 @@ END $env{'form.ccuname'}.' '.&mt('in domain').' '. $env{'form.ccdomain'}.'
'); } - } else { # End of if ($env ... ) logic + } else { # End of if ($env ... ) logic # They did not want to change the users name, quota, tool availability, # or ability to request creation of courses, # but we can still tell them what the name and quota and availabilities are - my %lt=&Apache::lonlocal::texthash( - 'id' => "Student/Employee ID", - 'mail' => "Permanent e-mail address", - 'disk' => "Disk space allocated to user's portfolio files", - 'blog' => "Blog Availability", - 'aboutme' => "Personal Information Page Availability", - 'portfolio' => "Portfolio Availability", - 'official' => "Can Request Official Courses", - 'unofficial' => "Can Request Unofficial Courses", - 'community' => "Can Request Communities", - 'inststatus' => "Affiliation", - ); - $r->print(<<"END"); -

$userenv{'firstname'} $userenv{'middlename'} $userenv{'lastname'} $userenv{'generation'} -END - if ($userenv{'permanentemail'} ne '') { - $r->print('
['.$lt{'mail'}.': '. - $userenv{'permanentemail'}.']'); - } - if ($showinststatus) { - $r->print('
['.$lt{'inststatus'}.': '.$oldinststatuses.']'); - } - if ($showrequestcourses) { - foreach my $item (@requestcourses) { - $r->print('
['.$lt{$item}.': '.$newaccess{$item}.' '. - $newaccesstext{$item}.']'."\n"); - } - } elsif ($showreqotherdom) { - foreach my $item (@requestcourses) { - $r->print('
['.$lt{$item}.': '.$newaccess{$item}.' '. - $newaccesstext{$item}.']'."\n"); - } - } - if ($showtools) { - foreach my $item (@usertools) { - $r->print('
['.$lt{$item}.': '.$newaccess{$item}.' '. - $newaccesstext{$item}.']'."\n"); - } - } - if ($showquota) { - $r->print('
['.$lt{'disk'}.': '.$oldportfolioquota.' Mb '. - $olddefquotatext.']'); - } - $r->print('

'); + &display_userinfo($r,undef,\@disporder,\%canshow,\@requestcourses, + \@usertools,\%userenv,\%changed,\%namechanged,\%oldsettings, + \%oldsettingstext,\%newsettings,\%newsettingstext); } if (@mod_disallowed) { my ($rolestr,$contextname); @@ -3019,7 +2841,7 @@ END $r->print('

'); } else { my @rolechanges = &update_roles($r,$context); - if ($namechanged) { + if (keys(%namechanged) > 0) { if ($context eq 'course') { if (@userroles > 0) { if ((@rolechanges == 0) || @@ -3048,6 +2870,136 @@ END $r->print(&Apache::loncommon::end_page()); } +sub display_userinfo { + my ($r,$changed,$order,$canshow,$requestcourses,$usertools,$userenv, + $changedhash,$namechangedhash,$oldsetting,$oldsettingtext, + $newsetting,$newsettingtext) = @_; + return unless (ref($order) eq 'ARRAY' && + ref($canshow) eq 'HASH' && + ref($requestcourses) eq 'ARRAY' && + ref($usertools) eq 'ARRAY' && + ref($userenv) eq 'HASH' && + ref($changedhash) eq 'HASH' && + ref($oldsetting) eq 'HASH' && + ref($oldsettingtext) eq 'HASH' && + ref($newsetting) eq 'HASH' && + ref($newsettingtext) eq 'HASH'); + my %lt=&Apache::lonlocal::texthash( + 'ui' => 'User Information (unchanged)', + 'uic' => 'User Information Changed', + 'firstname' => 'First Name', + 'middlename' => 'Middle Name', + 'lastname' => 'Last Name', + 'generation' => 'Generation', + 'id' => 'Student/Employee ID', + 'permanentemail' => 'Permanent e-mail address', + 'quota' => 'Disk space allocated to portfolio files', + 'blog' => 'Blog Availability', + 'aboutme' => 'Personal Information Page Availability', + 'portfolio' => 'Portfolio Availability', + 'official' => 'Can Request Official Courses', + 'unofficial' => 'Can Request Unofficial Courses', + 'community' => 'Can Request Communities', + 'inststatus' => "Affiliation", + 'prvs' => 'Previous Value:', + 'chto' => 'Changed To:' + ); + my $title = $lt{'ui'}; + if ($changed) { + $title = $lt{'uic'}; + } + $r->print('

'.$title.'

'. + &Apache::loncommon::start_data_table(). + &Apache::loncommon::start_data_table_header_row()); + if ($changed) { + $r->print("
\n"); + } + my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); + foreach my $item (@userinfo) { + $r->print("\n"); + } + foreach my $entry (@{$order}) { + if ($canshow->{$entry}) { + if (($entry eq 'requestcourses') || ($entry eq 'reqcrsotherdom')) { + foreach my $item (@{$requestcourses}) { + $r->print("\n"); + } + } elsif ($entry eq 'tools') { + foreach my $item (@{$usertools}) { + $r->print("\n"); + } + } else { + $r->print("\n"); + } + } + } + $r->print(&Apache::loncommon::end_data_table_header_row(). + &Apache::loncommon::start_data_table_row()); + if ($changed) { + $r->print(''."\n"); + } + foreach my $item (@userinfo) { + $r->print(''."\n"); + } + foreach my $entry (@{$order}) { + if ($canshow->{$entry}) { + if (($entry eq 'requestcourses') || ($entry eq 'reqcrsotherdom')) { + foreach my $item (@{$requestcourses}) { + $r->print("\n"); + } + } elsif ($entry eq 'tools') { + foreach my $item (@{$usertools}) { + $r->print("\n"); + } + } else { + $r->print("\n"); + } + } + } + $r->print(&Apache::loncommon::end_data_table_row()); + if ($changed) { + $r->print(&Apache::loncommon::start_data_table_row(). + ''."\n"); + foreach my $item (@userinfo) { + my $value = $env{'form.c'.$item}; + if ($namechangedhash->{$item}) { + $value = ''.$value.''; + } + $r->print("\n"); + } + foreach my $entry (@{$order}) { + if ($canshow->{$entry}) { + if (($entry eq 'requestcourses') || ($entry eq 'reqcrsotherdom')) { + foreach my $item (@{$requestcourses}) { + my $value = $newsetting->{$item}.' '.$newsettingtext->{$item}; + if ($changedhash->{$item}) { + $value = ''.$value.''; + } + $r->print("\n"); + } + } elsif ($entry eq 'tools') { + foreach my $item (@{$usertools}) { + my $value = $newsetting->{$item}.' '.$newsettingtext->{$item}; + if ($changedhash->{$item}) { + $value = ''.$value.''; + } + $r->print("\n"); + } + } else { + my $value = $newsetting->{$entry}.' '.$newsettingtext->{$entry}; + if ($changedhash->{$entry}) { + $value = ''.$value.''; + } + $r->print("\n"); + } + } + } + $r->print(&Apache::loncommon::end_data_table_row()); + } + $r->print(&Apache::loncommon::end_data_table().'
'); + return; +} + sub tool_changes { my ($context,$usertools,$oldaccess,$oldaccesstext,$userenv,$changeHash, $changed,$newaccess,$newaccesstext) = @_; @@ -3677,13 +3629,6 @@ sub custom_role_editor { $context = 'domain'; $crstype = $env{'form.templatecrstype'}; } - my $is_custom = &Apache::loncommon::needs_gci_custom(); - my $title = 'User Management'; - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } # ------------------------------------------------------- What can be assigned? my %full=(); my %courselevel=(); @@ -3799,7 +3744,7 @@ sub custom_role_editor { {href=>"javascript:backPage(document.form1,'','')", text=>"Edit custom role", faq=>282,bug=>'Instructor Interface',}); - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title, + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management', 'Course_Editing_Custom_Roles')); $r->print($body_top); @@ -3952,13 +3897,7 @@ sub set_custom_role { .$jsback."\n" .'// ]]>'."\n" .''."\n"; - my $title = 'User Management'; - my $is_custom = &Apache::loncommon::needs_gci_custom(); - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } + $r->print(&Apache::loncommon::start_page('Save Custom Role'),$jscript); &Apache::lonhtmlcommon::add_breadcrumb ({href=>"javascript:backPage(document.customresult,'pickrole','')", @@ -3970,7 +3909,7 @@ sub set_custom_role { {href=>"javascript:backPage(document.customresult,'set_custom_roles','')", text=>"Result", faq=>282,bug=>'Instructor Interface',}); - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title, + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management', 'Course_Editing_Custom_Roles')); my ($rdummy,$roledef)= @@ -4048,13 +3987,6 @@ sub handler { } else { $context = 'domain'; } - my $title = 'User Management'; - my $is_custom = &Apache::loncommon::needs_gci_custom(); - if ($context eq 'course') { - if ($is_custom) { - $title = 'Enrollment and Student Activity'; - } - } &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['action','state','callingform','roletype','showrole','bulkaction','popup','phase', 'username','domain','srchterm','srchdomain','srchin','srchby','srchtype']); @@ -4062,7 +3994,7 @@ sub handler { if ($env{'form.action'} ne 'dateselect') { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createuser", - text=>$title, + text=>"User Management", help=>'Course_Create_Class_List,Course_Change_Privileges,Course_View_Class_List,Course_Editing_Custom_Roles,Course_Add_Student,Course_Drop_Student,Course_Automated_Enrollment,Course_Self_Enrollment,Course_Manage_Group'}); } #SD Following files not added to help, because the corresponding .tex-files seem to @@ -4082,7 +4014,7 @@ sub handler { # Main switch on form.action and form.state, as appropriate if (! exists($env{'form.action'})) { $r->print(&header()); - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title)); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management')); $r->print(&print_main_menu($permission,$context,$crstype)); $r->print(&Apache::loncommon::end_page()); } elsif ($env{'form.action'} eq 'upload' && $permission->{'cusr'}) { @@ -4098,12 +4030,8 @@ sub handler { if (! exists($env{'form.state'})) { &Apache::lonuserutils::print_first_users_upload_form($r,$context); } elsif ($env{'form.state'} eq 'got_file') { - my $formname; - if ($env{'form.caller'} eq 'requestcrs') { - $formname = 'studentform'; - } &Apache::lonuserutils::print_upload_manager_form($r,$context, - $permission,$crstype,$formname); + $permission,$crstype); } elsif ($env{'form.state'} eq 'enrolling') { if ($env{'form.datatoken'}) { &Apache::lonuserutils::upfile_drop_add($r,$context,$permission); @@ -4126,7 +4054,7 @@ sub handler { if ($env{'form.phase'} eq 'createnewuser') { my $response; if ($env{'form.srchterm'} !~ /^$match_username$/) { - my $response = '

'.&mt('You must specify a valid username. Only the following are allowed: letters numbers - . @').'

'; + my $response = &mt('You must specify a valid username. Only the following are allowed: letters numbers - . @'); $env{'form.phase'} = ''; &print_username_entry_form($r,$context,$response,$srch,undef,$crstype); } else { @@ -4201,7 +4129,7 @@ sub handler { $r->print(&Apache::lonhtmlcommon::breadcrumbs("Update Users", 'Course_View_Class_List')); if ($permission->{'cusr'}) { - &Apache::lonuserutils::update_user_list($r,$context,$setting,$choice); + &Apache::lonuserutils::update_user_list($r,$context,$setting,$choice,$crstype); $r->print(&Apache::loncommon::end_page()); } else { $r->print(&mt('You are not authorized to make bulk changes to user roles')); @@ -4342,7 +4270,7 @@ sub handler { $r->print(&Apache::loncommon::end_page()); } else { $r->print(&header()); - $r->print(&Apache::lonhtmlcommon::breadcrumbs($title)); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management')); $r->print(&print_main_menu($permission,$context,$crstype)); $r->print(&Apache::loncommon::end_page()); } @@ -4388,10 +4316,6 @@ END # Menu Phase One sub print_main_menu { my ($permission,$context,$crstype) = @_; - my $is_custom = &Apache::loncommon::needs_gci_custom(); - if (($context eq 'course') && ($is_custom)) { - return &print_gci_main_menu($permission,$context,$crstype) - } my $linkcontext = $context; my $stuterm = lc(&Apache::lonnet::plaintext('st',$crstype)); if (($context eq 'course') && ($crstype eq 'Community')) { @@ -4551,7 +4475,7 @@ sub print_main_menu { }, { linktext => $linktext{$crstype}{'groups'}, - icon => 'conf.png', + icon => 'grps.png', #help => 'Course_Manage_Group', url => '/adm/coursegroups?refpage=cusr', permission => $permission->{'grp_manage'}, @@ -4613,82 +4537,6 @@ return Apache::lonhtmlcommon::generate_m # }); } -sub print_gci_main_menu { - my ($permission,$context,$crstype) = @_; - my $stuterm = lc(&Apache::lonnet::plaintext('st',$crstype)); - my ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity(); - my %links = ( - course => { - single => 'Add/Modify a Student', - drop => 'Drop Students', - upload => 'Upload a File of Course Users', - singleuser => 'Add/Modify a Course User', - listusers => 'Concept Test Roster and Student Activity', - }, - ); - my %linktitles = ( - course => { - singleuser => 'Add a user with a certain role to this course.', - listusers => 'Show and manage users in this course.', - single => 'Add a user with the role of student to this course', - drop => 'Remove a student from this course.', - upload => 'Upload a CSV or a text file containing users.', - }, - ); - my @menu = ( {categorytitle => 'Manage Users', - items => - [ - { - linktext => $links{$context}{'single'}, - #help => 'Course_Add_Student', - icon => 'list-add.png', - url => '/adm/createuser?action=singlestudent', - permission => $permission->{'cusr'}, - linktitle => $linktitles{$context}{'single'}, - - }, - { - linktext => $links{$context}{'drop'}, - icon => 'edit-undo.png', - #help => 'Course_Drop_Student', - url => '/adm/createuser?action=drop', - permission => $permission->{'cusr'}, - linktitle => $linktitles{$context}{'drop'}, - }, - { - linktext => $links{$context}{'upload'}, - icon => 'sctr.png', - #help => 'Course_Create_Class_List', - url => '/adm/createuser?action=upload', - permission => $permission->{'cusr'}, - linktitle => $linktitles{$context}{'upload'}, - }, - { - linktext => $links{$context}{'listusers'}, - icon => 'edit-find.png', - #help => 'Course_View_Class_List', - url => '/adm/createuser?action=listusers', - permission => ($permission->{'view'} || $permission->{'cusr'}), - linktitle => $linktitles{$context}{'listusers'}, - }, - ]}, - {categorytitle => 'Administration', - items => [ ]}, - ); - - push(@{ $menu[1]->{items} }, #Category: Administration - { - linktext => 'Change Log', - icon => 'document-properties.png', - #help => 'Course_User_Logs', - url => '/adm/createuser?action=changelogs', - permission => $permission->{'cusr'}, - linktitle => 'View change log.', - }, - ); - return Apache::lonhtmlcommon::generate_menu(@menu); -} - sub restore_prev_selections { my %saveable_parameters = ('srchby' => 'scalar', 'srchin' => 'scalar', @@ -5653,7 +5501,16 @@ sub role_display_filter { # Update Display button $output .= '

' .'' - .'


'; + .'

'; + + # Server version info + $output .= '

' + .&mt('Only changes made from servers running LON-CAPA [_1] or later are displayed.' + ,'2.6.99.0'); + if ($version) { + $output .= ' '.&mt('This LON-CAPA server is version [_1]',$version); + } + $output .= '


'; return $output; } @@ -5703,7 +5560,7 @@ sub user_search_result { if (($srch->{'srchin'} eq 'dom') || ($srch->{'srchin'} eq 'instd')) { if (($srch->{'srchdomain'} eq '') || ! (&Apache::lonnet::domain($srch->{'srchdomain'}))) { - $response = '

'.&mt('You must specify a valid domain when searching in a domain or institutional directory.').'

'; + $response = &mt('You must specify a valid domain when searching in a domain or institutional directory.') } } if (($srch->{'srchin'} eq 'dom') || ($srch->{'srchin'} eq 'crs') || @@ -5716,7 +5573,7 @@ sub user_search_result { } } if ($unamecheck !~ /^$match_username$/) { - $response = '

'.&mt('You must specify a valid username. Only the following are allowed: letters numbers - . @').'

'; + $response = &mt('You must specify a valid username. Only the following are allowed: letters numbers - . @'); } } } @@ -5891,8 +5748,7 @@ sub user_search_result { ($currstate,$response,$forcenewuser) = &build_search_response($context,$srch,%srch_results); } else { - my $showdom = &display_domain_info($srch->{'srchdomain'}); - $response = ''. + my $showdom = &display_domain_info($srch->{'srchdomain'}); $response = ''. &mt('Institutional directory search is not available in domain: [_1]',$showdom). '
'. &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.'). @@ -6003,12 +5859,12 @@ sub build_search_response { my ($context,$srch,%srch_results) = @_; my ($currstate,$response,$forcenewuser); my %names = ( - 'uname' => 'username', - 'lastname' => 'last name', + 'uname' => 'username', + 'lastname' => 'last name', 'lastfirst' => 'last name, first name', - 'crs' => 'this course', - 'dom' => 'LON-CAPA domain: ', - 'instd' => 'the institutional directory for domain: ', + 'crs' => 'this course', + 'dom' => 'LON-CAPA domain', + 'instd' => 'the institutional directory for domain', ); my %single = ( @@ -6028,14 +5884,20 @@ sub build_search_response { $currstate = 'modify'; $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'}); + $response .= ': '.&display_domain_info($srch->{'srchdomain'}); } - } else { - $response = ''.&mt("$nomatch{$srch->{'srchtype'}} found for the $names{$srch->{'srchby'}} ([_1]) in $names{$srch->{'srchin'}}",$srch->{'srchterm'}); + } else { # Search has nothing found. Prepare message to user. + $response = ''; if ($srch->{'srchin'} eq 'dom' || $srch->{'srchin'} eq 'instd') { - $response .= &display_domain_info($srch->{'srchdomain'}); + $response .= &mt("$nomatch{$srch->{'srchtype'}} found for the $names{$srch->{'srchby'}} [_1] in $names{$srch->{'srchin'}}: [_2]", + ''.$srch->{'srchterm'}.'', + &display_domain_info($srch->{'srchdomain'})); + } else { + $response .= &mt("$nomatch{$srch->{'srchtype'}} found for the $names{$srch->{'srchby'}} [_1] in $names{$srch->{'srchin'}}.", + ''.$srch->{'srchterm'}.''); } $response .= ''; + if ($srch->{'srchin'} ne 'alc') { $forcenewuser = 1; my $cansrchinst = 0; @@ -6719,7 +6581,7 @@ sub is_courseowner { } if ($courseowner ne '') { if ($courseowner eq $env{'user.name'}.':'.$env{'user.domain'}) { - return 1; + return 1; } } return;
$lt{'usr'}:  $lt{'dom'}:$domform  $sellink    $lt{'frst'}$lt{'mddl'}$lt{'lst'}$lt{'gen'}$lt{'id'}$lt{'mail'}$lt{'inststatus'}$lt{$item}$lt{$item}$lt{'disk'}$lt{$item}$lt{'prvs'}$userenv{'firstname'} $userenv{'middlename'} $userenv{'lastname'} $userenv{'generation'} $userenv{'id'}$userenv{'permanentemail'} $oldinststatuses$oldaccess{$item} $oldaccesstext{$item}$oldaccess{$item} $oldaccesstext{$item}$oldportfolioquota Mb $olddefquotatext $oldaccess{$item} $oldaccesstext{$item} $lt{'chto'}$env{'form.cfirstname'} $env{'form.cmiddlename'} $env{'form.clastname'} $env{'form.cgeneration'} $env{'form.cid'} $env{'form.cpermanentemail'} $newinststatuses$newaccess{$item} $newaccesstext{$item} $newaccess{$item} $newaccesstext{$item} $newportfolioquota Mb $newdefquotatext $newaccess{$item} $newaccesstext{$item}  $lt{$item}$lt{$item}$lt{$item}$lt{$entry}'.$lt{'prvs'}.''.$userenv->{$item}.' $oldsetting->{$item} $oldsettingtext->{$item}$oldsetting->{$item} $oldsettingtext->{$item}$oldsetting->{$entry} $oldsettingtext->{$entry} '.$lt{'chto'}.'$value $value $value $value