--- loncom/interface/loncreateuser.pm 2010/01/19 23:41:43 1.295.2.26 +++ loncom/interface/loncreateuser.pm 2010/01/14 20:08:13 1.332 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.295.2.26 2010/01/19 23:41:43 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.332 2010/01/14 20:08:13 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", @@ -231,16 +231,21 @@ sub build_tools_display { 'uscu' => "Use custom", 'official' => 'Can request creation of official courses', 'unofficial' => 'Can request creation of unofficial courses', + 'community' => 'Can request creation of communities', ); if ($context eq 'requestcourses') { %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, - 'requestcourses.official','requestcourses.unofficial'); - @usertools = ('official','unofficial'); + 'requestcourses.official','requestcourses.unofficial', + 'requestcourses.community'); + @usertools = ('official','unofficial','community'); @options =('norequest','approval','autolimit','validate'); %validations = &Apache::lonnet::auto_courserequest_checks($ccdomain); %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'); @@ -287,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'; } @@ -519,7 +531,6 @@ sub print_username_entry_form { my %lt=&Apache::lonlocal::texthash( 'srst' => 'Search for a user and enroll as a student', 'srme' => 'Search for a user and enroll as a member', - 'srad' => 'Search for a user and modify/add user information or roles', 'usr' => "Username", 'dom' => "Domain", @@ -674,7 +685,7 @@ ENDBLOCK ); my $sellink=&Apache::loncommon::selectstudent_link('crtusername','srchterm','srchdomain'); my ($title,$buttontext,$showresponse); - if ($env{'form.action'} eq 'singlestudent') { + if ($env{'form.action'} eq 'singlestudent') { if ($crstype eq 'Community') { $title = $lt{'enrm'}; } else { @@ -934,7 +945,7 @@ sub print_user_modification_page { ); my $response; if ($env{'form.origform'} eq 'crtusername') { - $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 .= '' @@ -1042,8 +1053,8 @@ ENDFORMINFO } } else { foreach my $key (keys(%env)) { - if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) { - $inccourses{$1.'_'.$2}=1; + if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) { + $inccourses{$1.'_'.$2}=1; } } } @@ -1417,7 +1428,7 @@ sub display_existing_roles { my (%rolesdump,%roletext,%sortrole,%roleclass,%rolepriv); if ($context eq 'course' || $context eq 'author') { my @roles = &Apache::lonuserutils::roles_by_context($context,1,$crstype); - my %roleshash = + my %roleshash = &Apache::lonnet::get_my_roles($ccuname,$ccdomain,'userroles', ['active','previous','future'],\@roles,$roledom,1); foreach my $key (keys(%roleshash)) { @@ -1474,10 +1485,10 @@ sub display_existing_roles { if ($area =~ m{^/($match_domain)/($match_courseid)} ) { $class='Course'; my ($coursedom,$coursedir) = ($1,$2); - $sortkey.="\0$coursedom"; + my $cid = $1.'_'.$2; # $1.'_'.$2 is the course id (eg. 103_12345abcef103l3). my %coursedata= - &Apache::lonnet::coursedescription($1.'_'.$2); + &Apache::lonnet::coursedescription($cid); if ($coursedir =~ /^$match_community$/) { $class='Community'; } @@ -1486,9 +1497,8 @@ sub display_existing_roles { if (defined($coursedata{'description'})) { $carea=$coursedata{'description'}. ''.&mt('Domain').': '.$coursedom.(' 'x8). - &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$coursedir,$coursedom); + &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$coursedir,$coursedom); $sortkey.="\0".$coursedata{'description'}; - $class=$coursedata{'type'}; } else { if ($class eq 'Community') { $carea=&mt('Unavailable community').': '.$area; @@ -1499,8 +1509,8 @@ sub display_existing_roles { } } $sortkey.="\0$coursedir"; - $inccourses->{$1.'_'.$2}=1; - if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) || + $inccourses->{$cid}=1; + if ((&Apache::lonnet::allowed('c'.$role_code,$coursedom.'/'.$coursedir)) || (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) { $allowed=1; } @@ -1513,14 +1523,14 @@ sub display_existing_roles { $allowed = 1; } } - } - if ((&Apache::lonnet::allowed('dro',$1)) || + } + if ((&Apache::lonnet::allowed('dro',$coursedom)) || (&Apache::lonnet::allowed('dro',$ccdomain))) { - $delallowed=1; + $delallowed=1; } # - custom role. Needs more info, too if ($croletitle) { - if (&Apache::lonnet::allowed('ccr',$1.'/'.$2)) { + if (&Apache::lonnet::allowed('ccr',$coursedom.'/'.$coursedir)) { $allowed=1; $thisrole.='.'.$role_code; } @@ -1529,11 +1539,11 @@ sub display_existing_roles { $carea.='Section: '.$3; $sortkey.="\0$3"; if (!$allowed) { - if ($env{'request.course.sec'} eq $3) { - if (&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2.'/'.$3)) { - $allowed = 1; - } - } + if ($env{'request.course.sec'} eq $3) { + if (&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2.'/'.$3)) { + $allowed = 1; + } + } } } $area=$carea; @@ -1542,8 +1552,8 @@ sub display_existing_roles { # Determine if current user is able to revoke privileges if ($area=~m{^/($match_domain)/}) { if ((&Apache::lonnet::allowed('c'.$role_code,$1)) || - (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) { - $allowed=1; + (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) { + $allowed=1; } if (((&Apache::lonnet::allowed('dro',$1)) || (&Apache::lonnet::allowed('dro',$ccdomain))) && @@ -1607,7 +1617,7 @@ sub display_existing_roles { '
' @@ -1042,8 +1053,8 @@ ENDFORMINFO } } else { foreach my $key (keys(%env)) { - if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) { - $inccourses{$1.'_'.$2}=1; + if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) { + $inccourses{$1.'_'.$2}=1; } } } @@ -1417,7 +1428,7 @@ sub display_existing_roles { my (%rolesdump,%roletext,%sortrole,%roleclass,%rolepriv); if ($context eq 'course' || $context eq 'author') { my @roles = &Apache::lonuserutils::roles_by_context($context,1,$crstype); - my %roleshash = + my %roleshash = &Apache::lonnet::get_my_roles($ccuname,$ccdomain,'userroles', ['active','previous','future'],\@roles,$roledom,1); foreach my $key (keys(%roleshash)) { @@ -1474,10 +1485,10 @@ sub display_existing_roles { if ($area =~ m{^/($match_domain)/($match_courseid)} ) { $class='Course'; my ($coursedom,$coursedir) = ($1,$2); - $sortkey.="\0$coursedom"; + my $cid = $1.'_'.$2; # $1.'_'.$2 is the course id (eg. 103_12345abcef103l3). my %coursedata= - &Apache::lonnet::coursedescription($1.'_'.$2); + &Apache::lonnet::coursedescription($cid); if ($coursedir =~ /^$match_community$/) { $class='Community'; } @@ -1486,9 +1497,8 @@ sub display_existing_roles { if (defined($coursedata{'description'})) { $carea=$coursedata{'description'}. ''.&mt('Domain').': '.$coursedom.(' 'x8). - &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$coursedir,$coursedom); + &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$coursedir,$coursedom); $sortkey.="\0".$coursedata{'description'}; - $class=$coursedata{'type'}; } else { if ($class eq 'Community') { $carea=&mt('Unavailable community').': '.$area; @@ -1499,8 +1509,8 @@ sub display_existing_roles { } } $sortkey.="\0$coursedir"; - $inccourses->{$1.'_'.$2}=1; - if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) || + $inccourses->{$cid}=1; + if ((&Apache::lonnet::allowed('c'.$role_code,$coursedom.'/'.$coursedir)) || (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) { $allowed=1; } @@ -1513,14 +1523,14 @@ sub display_existing_roles { $allowed = 1; } } - } - if ((&Apache::lonnet::allowed('dro',$1)) || + } + if ((&Apache::lonnet::allowed('dro',$coursedom)) || (&Apache::lonnet::allowed('dro',$ccdomain))) { - $delallowed=1; + $delallowed=1; } # - custom role. Needs more info, too if ($croletitle) { - if (&Apache::lonnet::allowed('ccr',$1.'/'.$2)) { + if (&Apache::lonnet::allowed('ccr',$coursedom.'/'.$coursedir)) { $allowed=1; $thisrole.='.'.$role_code; } @@ -1529,11 +1539,11 @@ sub display_existing_roles { $carea.='Section: '.$3; $sortkey.="\0$3"; if (!$allowed) { - if ($env{'request.course.sec'} eq $3) { - if (&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2.'/'.$3)) { - $allowed = 1; - } - } + if ($env{'request.course.sec'} eq $3) { + if (&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2.'/'.$3)) { + $allowed = 1; + } + } } } $area=$carea; @@ -1542,8 +1552,8 @@ sub display_existing_roles { # Determine if current user is able to revoke privileges if ($area=~m{^/($match_domain)/}) { if ((&Apache::lonnet::allowed('c'.$role_code,$1)) || - (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) { - $allowed=1; + (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) { + $allowed=1; } if (((&Apache::lonnet::allowed('dro',$1)) || (&Apache::lonnet::allowed('dro',$ccdomain))) && @@ -1607,7 +1617,7 @@ sub display_existing_roles { '
'; - if (exists($menu_item->{'help'})) { - $menu_html.= - &Apache::loncommon::help_open_topic($menu_item->{'help'}); - } - $menu_html.=''; - if (exists($menu_item->{'url'})) { - $menu_html.=qq{}; - } else { - $menu_html.= - qq{}; } - $menu_html.= &mt($menu_item->{'text'}).''; - $menu_html.='
' + .&mt('There are no records to display.') + .'
'; + if (($curr->{'page'} > 1) || ($more_records)) { + if ($curr->{'page'} > 1) { + $nav_links .= ' '; + } + if ($more_records) { + $nav_links .= ''; + } } - } else { - $r->print('
'. - &mt('There are no records to display'). - '
' + $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 .= '