--- loncom/interface/loncreateuser.pm 2009/02/03 05:28:00 1.276 +++ loncom/interface/loncreateuser.pm 2009/02/24 12:03:59 1.283 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.276 2009/02/03 05:28:00 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.283 2009/02/24 12:03:59 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -68,6 +68,7 @@ use Apache::loncommon; use Apache::lonlocal; use Apache::longroup; use Apache::lonuserutils; +use Apache::selfenroll(); use LONCAPA qw(:DEFAULT :match); my $loginscript; # piece of javascript used in two separate instances @@ -226,9 +227,9 @@ sub build_tools_display { 'official' => 'Can request creation of official courses', 'unofficial' => 'Can request creation of unofficial courses', ); - if ($context eq 'requestcourse') { + if ($context eq 'requestcourses') { %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, - 'requestcourse.official','requestcourse.unofficial'); + 'requestcourses.official','requestcourses.unofficial'); @usertools = ('official','unofficial'); } else { %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, @@ -336,7 +337,7 @@ sub print_username_entry_form { 'dom' => "Domain", 'ecrp' => "Edit Custom Role Privileges", 'nr' => "Name of Role", - 'cre' => "Custom Role Editor", + 'cre' => "Next", ); $r->print($start_page."\n".$crumbs); if ($env{'form.action'} eq 'custom') { @@ -346,7 +347,7 @@ sub print_username_entry_form {

$lt{'ecrp'}

-$lt{'nr'}: $choice
+$choice $lt{'nr'}:
ENDCUSTOM @@ -869,7 +870,7 @@ ENDCHANGEUSER if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { $r->print('

'.&mt('User Can Request Creation of Courses?').'

'. &Apache::loncommon::start_data_table(). - &build_tools_display($ccuname,$ccdomain,'requestcourse'). + &build_tools_display($ccuname,$ccdomain,'requestcourses'). &Apache::loncommon::end_data_table()); } $r->print(''); @@ -1712,8 +1713,8 @@ sub update_user_data { } if ( $env{'form.ccuname'} ne &LONCAPA::clean_username($env{'form.ccuname'}) ) { - $r->print($error.&mt('Invalid login name').'. '. - &mt('Only letters, numbers, periods, dashes, @, and underscores are valid').'.'. + $r->print($error.&mt('Invalid login name.').' '. + &mt('Only letters, numbers, periods, dashes, @, and underscores are valid.'). $end.$rtnlink); return; } @@ -1723,8 +1724,8 @@ sub update_user_data { } if ( $env{'form.ccdomain'} ne &LONCAPA::clean_domain($env{'form.ccdomain'}) ) { - $r->print($error.&mt ('Invalid domain name').'. '. - &mt('Only letters, numbers, periods, dashes, and underscores are valid').'.'. + $r->print($error.&mt('Invalid domain name.').' '. + &mt('Only letters, numbers, periods, dashes, and underscores are valid.'). $end.$rtnlink); return; } @@ -1850,12 +1851,10 @@ sub update_user_data { \%changeHash,'tools'); } } - if (&Apache::lonnet::allowed('ccc',$env{'request.domain'})) { - foreach my $item (@requestcourses) { - $newcustom{$item} = $env{'form.requestcourse_'.$item}; - $changed{$item} = &tool_admin($item,$newcustom{$item}, - \%changeHash,'requestcourse'); - } + foreach my $item (@requestcourses) { + $newcustom{$item} = $env{'form.requestcourses_'.$item}; + $changed{$item} = &tool_admin($item,$newcustom{$item}, + \%changeHash,'requestcourses'); } if (keys(%changed)) { $changeHash{'firstname'} = $env{'form.cfirstname'}; @@ -1901,8 +1900,8 @@ sub update_user_data { my %userenv = &Apache::lonnet::get ('environment',['firstname','middlename','lastname','generation', 'id','permanentemail','portfolioquota','inststatus','tools.aboutme', - 'tools.blog','tools.portfolio','requestcourse.official', - 'requestcourse.unofficial'], + 'tools.blog','tools.portfolio','requestcourses.official', + 'requestcourses.unofficial'], $env{'form.ccdomain'},$env{'form.ccuname'}); my ($tmp) = keys(%userenv); if ($tmp =~ /^(con_lost|error)/i) { @@ -2083,7 +2082,7 @@ sub update_user_data { } &tool_changes('tools',\@usertools,\%oldaccess,\%oldaccesstext,\%userenv, \%changeHash,\%changed,\%newaccess,\%newaccesstext); - &tool_changes('requestcourse',\@requestcourses,\%oldaccess,\%oldaccesstext, + &tool_changes('requestcourses',\@requestcourses,\%oldaccess,\%oldaccesstext, \%userenv, \%changeHash,\%changed,\%newaccess,\%newaccesstext); if ($env{'form.cfirstname'} ne $userenv{'firstname'} || $env{'form.cmiddlename'} ne $userenv{'middlename'} || @@ -2111,16 +2110,26 @@ sub update_user_data { my %newenvhash; foreach my $key (keys(%changed)) { if (($key eq 'official') || ($key eq 'unofficial')) { - $newenvhash{'environment.canrequest.'.$key} = - $changeHash{'requestcourse.'.$key}; - $newenvhash{'environment.canrequest.'.$key} = - $changeHash{'requestcourse.'.$key}; - + $newenvhash{'environment.requestcourses.'.$key} = + $changeHash{'requestcourses.'.$key}; + if ($changeHash{'requestcourses.'.$key} ne '') { + $newenvhash{'environment.canrequest.'.$key} = + $changeHash{'requestcourses.'.$key}; + } else { + $newenvhash{'environment.canrequest.'.$key} = + &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, + $key,'reload','requestcourses'); + } } elsif ($key ne 'quota') { $newenvhash{'environment.tools.'.$key} = $changeHash{'tools.'.$key}; - $newenvhash{'environment.availabletools.'.$key} = - $changeHash{'tools.'.$key}; + if ($changeHash{'tools.'.$key} ne '') { + $newenvhash{'environment.availabletools.'.$key} = + $changeHash{'tools.'.$key}; + } else { + $newenvhash{'environment.availabletools.'.$key} = + &Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, $key,'reload','tools'); + } } } if (keys(%newenvhash)) { @@ -2396,9 +2405,9 @@ sub tool_changes { } else { $oldaccesstext->{$tool} = &mt("availability set to 'off'"); } - $changeHash->{$context.'.'.$tool} = $userenv->{'tools.'.$tool}; + $changeHash->{$context.'.'.$tool} = $userenv->{$context.'.'.$tool}; if ($env{'form.custom'.$tool} == 1) { - if ($env{'form.'.$context.'_'.$tool} ne $userenv->{'tools.'.$tool}) { + if ($env{'form.'.$context.'_'.$tool} ne $userenv->{$context.'.'.$tool}) { $changed->{$tool} = &tool_admin($tool,$env{'form.'.$context.'_'.$tool}, $changeHash,$context); if ($changed->{$tool}) { @@ -2822,7 +2831,7 @@ sub quota_admin { sub tool_admin { my ($tool,$settool,$changeHash,$context) = @_; my $canchange = 0; - if ($context eq 'requestcourse') { + if ($context eq 'requestcourses') { if (&Apache::lonnet::allowed('ccc',$env{'form.ccdomain'})) { $canchange = 1; } @@ -3008,7 +3017,7 @@ ENDCCF ''."\n".''."\n". ''."\n". - ''. + ''. &Apache::loncommon::end_page()); } # -------------------------------------------------------- @@ -3409,6 +3418,29 @@ sub handler { &update_selfenroll_config($r,$context,$permission); } $r->print(&Apache::loncommon::end_page()); + } elsif ($env{'form.action'} eq 'selfenrollqueue') { + $r->print(&header()); + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/createuser?action=selfenrollqueue', + text=>"Enrollment requests"}); + my $cid = $env{'request.course.id'}; + my $cdom = $env{'course.'.$cid.'.domain'}; + my $cnum = $env{'course.'.$cid.'.num'}; + if (!exists($env{'form.state'})) { + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Enrollment requests', + 'Course_SelfEnrollment_Approval')); + $r->print('

'.&mt('Pending enrollment requests').'

'."\n"); + &display_selfenroll_queue($r,$context,$permission,$cnum,$cdom); + } elsif ($env{'form.state'} eq 'done') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/createuser?action=selfenrollqueue', + text=>"Result"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Enrollment result', + 'Course_Self_Enrollment')); + $r->print('

'.&mt('Enrollment request processing').'

'."\n"); + &update_selfenroll_queue($r,$context,$permission,$cid,$cnum,$cdom); + } + $r->print(&Apache::loncommon::end_page()); } elsif ($env{'form.action'} eq 'changelogs') { $r->print(&header()); &Apache::lonhtmlcommon::add_breadcrumb @@ -3551,6 +3583,16 @@ sub print_main_menu { permission => $permission->{'custom'}, linktitle => 'Configure a custom role.', }); + if ($env{'course.'.$env{'request.course.id'}.'.internal.selfenroll_approval'}) { + push(@{ $menu[1]->{items} }, + { linktext => 'Enrollment Requests', + icon => 'selfenrl-queue.png', + #help => 'Course_Approve_Selfenroll', + url => '/adm/createuser?action=selfenrollqueue', + permission => $permission->{'cusr'}, + linktitle =>'Approve or reject enrollment requests.', + }); + } if (!exists($permission->{'cusr_section'})){ @@ -3797,9 +3839,10 @@ ENDSCRIPT my ($visible,$cansetvis,$vismsgs,$visactions) = &visible_in_cat($cdom,$cnum); if (ref($visactions) eq 'HASH') { if ($visible) { - $output .= '

'.$visactions->{'vis'}.'

'; + $output .= '

'.$visactions->{'vis'}.'

'; } else { - $output .= $visactions->{'miss'}.'
'.$visactions->{'yous'}. + $output .= '

'.$visactions->{'miss'}.'

' + .$visactions->{'yous'}. '

'.$visactions->{'gen'}.'
'.$visactions->{'coca'}; if (ref($vismsgs) eq 'ARRAY') { $output .= '
'.$visactions->{'make'}.'