--- loncom/interface/loncreateuser.pm 2010/01/19 23:41:43 1.295.2.26 +++ loncom/interface/loncreateuser.pm 2010/03/19 21:59:53 1.295.2.30 @@ -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.295.2.30 2010/03/19 21:59:53 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'; } @@ -1444,6 +1456,8 @@ sub display_existing_roles { $newkey .= '_'.$newrole; if ($start ne '' && $end ne '') { $newvalue .= '_'.$end.'_'.$start; + } elsif ($end ne '') { + $newvalue .= '_'.$end; } $rolesdump{$newkey} = $newvalue; } @@ -1474,10 +1488,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'; } @@ -1499,8 +1513,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; } @@ -1514,13 +1528,13 @@ sub display_existing_roles { } } } - if ((&Apache::lonnet::allowed('dro',$1)) || + if ((&Apache::lonnet::allowed('dro',$coursedom)) || (&Apache::lonnet::allowed('dro',$ccdomain))) { $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; } @@ -2674,7 +2688,8 @@ sub update_user_data { ($env{'user.domain'} eq $env{'form.ccdomain'})) { my %newenvhash; foreach my $key (keys(%changed)) { - if (($key eq 'official') || ($key eq 'unofficial')) { + if (($key eq 'official') || ($key eq 'unofficial') + || ($key eq 'community')) { $newenvhash{'environment.requestcourses.'.$key} = $changeHash{'requestcourses.'.$key}; if ($changeHash{'requestcourses.'.$key} ne '') { @@ -2735,6 +2750,7 @@ sub update_user_data { '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:' @@ -2888,6 +2904,7 @@ END 'portfolio' => "Portfolio Availability", 'official' => "Can Request Official Courses", 'unofficial' => "Can Request Unofficial Courses", + 'community' => "Can Request Communities", 'inststatus' => "Affiliation", ); $r->print(<<"END");