--- 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') {