--- loncom/interface/selfenroll.pm 2014/03/31 02:31:05 1.28 +++ loncom/interface/selfenroll.pm 2014/04/04 23:06:32 1.30 @@ -1,7 +1,7 @@ # The LearningOnline Network # Allow users to self-enroll in a course # -# $Id: selfenroll.pm,v 1.28 2014/03/31 02:31:05 raeburn Exp $ +# $Id: selfenroll.pm,v 1.30 2014/04/04 23:06:32 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -232,7 +232,7 @@ sub handler { &process_self_enroll($r,$cdom,$cnum,$selfenroll_types,$selfenroll_registered, $selfenroll_access_start,$selfenroll_access_end, $selfenroll_section,$now,$selfenroll_approval, - $selfenroll_notifylist,$owner,$crstype,$lonhost); + $selfenroll_notifylist,$owner,$crstype,$lonhost,$handle); } elsif ($env{'form.phase'} eq 'login') { my $submit_text = &mt('Log in'); $r->print('

'.&mt('Log-in to LON-CAPA').'

'); @@ -410,7 +410,7 @@ sub has_role { sub process_self_enroll { my ($r,$cdom,$cnum,$selfenroll_types,$selfenroll_registered, $selfenroll_access_start,$selfenroll_access_end,$selfenroll_section, - $now,$selfenroll_approval,$selfenroll_notifylist,$owner,$crstype,$lonhost) = @_; + $now,$selfenroll_approval,$selfenroll_notifylist,$owner,$crstype,$lonhost,$handle) = @_; my $udom = $env{'user.domain'}; my $uname = $env{'user.name'}; my $selfenroll = 0; @@ -455,7 +455,7 @@ sub process_self_enroll { my $outcome = &store_selfenroll_request($udom,$uname,$usec,$cdom,$cnum, $selfenroll_notifylist,$owner, - $selfenroll_approval,$crstype,$lonhost); + $selfenroll_approval,$crstype,$lonhost,$handle); $r->print($outcome); } else { my $enrollresult = @@ -534,7 +534,7 @@ sub user_can_selfenroll { sub store_selfenroll_request { my ($udom,$uname,$usec,$cdom,$cnum,$selfenroll_notifylist,$owner, - $selfenroll_approval,$crstype,$lonhost) = @_; + $selfenroll_approval,$crstype,$lonhost,$handle) = @_; my $namespace = 'selfenrollrequests'; my $output; my $now = time; @@ -562,8 +562,10 @@ sub store_selfenroll_request { }); my $token; if ($status eq 'pending') { - $token = &Apache::lonnet::tmpput(\%selfenroll,$lonhost);; + $token = &Apache::lonnet::tmpput(\%selfenroll,$lonhost); $userenroll{$cdom.'_'.$cnum}{'token'} = $token; + $userenroll{$cdom.'_'.$cnum}{'lonhost'} = $lonhost; + $userenroll{$cdom.'_'.$cnum}{'handle'} = $handle; } my $warning; my $userresult = &Apache::lonnet::put($namespace,\%userenroll,$udom,$uname); @@ -581,11 +583,13 @@ sub store_selfenroll_request { 'token' => $token, ); my %domconfig = &Apache::lonnet::get_dom('configuration',['selfenrollment'],$cdom); + if (ref($domconfig{'selfenrollment'}) eq 'HASH') { my ($url,$buttontext,$code,@fields); if (ref($domconfig{'selfenrollment'}{'validation'}) eq 'HASH') { my %courseinfo = &Apache::lonnet::coursedescription($cdom.'_'.$cnum,{ 'one_time' => 1}); $postvalues{'uniquecode'} = $courseinfo{'internal.uniquecode'}; + $postvalues{'description'} = $courseinfo{'description'}; $url = $domconfig{'selfenrollment'}{'validation'}{'url'}; if (ref($domconfig{'selfenrollment'}{'validation'}{'fields'}) eq 'ARRAY') { @fields = @{$domconfig{'selfenrollment'}{'validation'}{'fields'}}; @@ -600,15 +604,21 @@ sub store_selfenroll_request { $output .= ''."\n"; } } - } - if ($buttontext eq '') { - $buttontext = &mt('Complete my enrollment'); - } - $output .= ''."\n". - ''."\n"; + if ($buttontext eq '') { + $buttontext = &mt('Complete my enrollment'); + } + my $protocol = $Apache::lonnet::protocol{$lonhost}; + $protocol = 'http' if ($protocol ne 'https'); + my $enroller = $protocol.'://'.&Apache::lonnet::hostname($lonhost).'/cgi-bin/enrollqueued.pl'; + $output .= ''."\n". + ''."\n". + ''."\n"; + } else { + $status = 'request'; + } } } else { - $status eq 'request'; + $status = 'request'; } } if ($status eq 'request') {