Diff for /loncom/interface/selfenroll.pm between versions 1.32 and 1.37

version 1.32, 2015/06/09 21:22:57 version 1.37, 2021/06/15 20:52:26
Line 438  sub process_self_enroll { Line 438  sub process_self_enroll {
         if ($selfenroll_section eq 'none') {          if ($selfenroll_section eq 'none') {
             $usec = '';              $usec = '';
         }          }
           my $instcid;
         if ($selfenroll_registered) {          if ($selfenroll_registered) {
             my ($registered,$instsec,$message) = &check_registered($cdom,$cnum);              my ($registered,$instsec,$instcid,$message) = &check_registered($cdom,$cnum);
             $usec = $instsec;              $usec = $instsec;
             if (!$registered) {              if (!$registered) {
                 $r->print('<h3>'.&mt('Self-enrollment unavailable').'</h3>'.                  $r->print('<h3>'.&mt('Self-enrollment unavailable').'</h3>'.
Line 454  sub process_self_enroll { Line 455  sub process_self_enroll {
         }          }
         if ($selfenroll_approval) {          if ($selfenroll_approval) {
             my $outcome =               my $outcome = 
                 &store_selfenroll_request($udom,$uname,$usec,$cdom,$cnum,                  &store_selfenroll_request($r,$udom,$uname,$usec,$cdom,$cnum,
                                           $selfenroll_notifylist,$owner,                                            $selfenroll_notifylist,$owner,
                                           $selfenroll_approval,$crstype,$lonhost,$handle);                                            $selfenroll_approval,$crstype,$lonhost,$handle);
             $r->print($outcome);              $r->print($outcome);
Line 462  sub process_self_enroll { Line 463  sub process_self_enroll {
             my $enrollresult =               my $enrollresult = 
                 &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,                  &Apache::lonnet::modify_student_enrollment($udom,$uname,undef,undef,undef,
                         undef,undef,$usec,$selfenroll_access_end,$selfenroll_access_start,                          undef,undef,$usec,$selfenroll_access_end,$selfenroll_access_start,
                        'selfenroll',undef,$cdom.'_'.$cnum,$selfenroll);                         'selfenroll',undef,$cdom.'_'.$cnum,$selfenroll,'selfenroll','',$instcid);
             if ($enrollresult eq 'ok') {              if ($enrollresult eq 'ok') {
                 my (%userroles,%newrole,%newgroups);                  my (%userroles,%newrole,%newgroups);
                 my $role = 'st';                  my $role = 'st';
Line 534  sub user_can_selfenroll { Line 535  sub user_can_selfenroll {
 }  }
   
 sub store_selfenroll_request {  sub store_selfenroll_request {
     my ($udom,$uname,$usec,$cdom,$cnum,$selfenroll_notifylist,$owner,      my ($r,$udom,$uname,$usec,$cdom,$cnum,$selfenroll_notifylist,$owner,
         $selfenroll_approval,$crstype,$lonhost,$handle) = @_;          $selfenroll_approval,$crstype,$lonhost,$handle) = @_;
     my $namespace = 'selfenrollrequests';      my $namespace = 'selfenrollrequests';
     my $output;      my $output;
Line 550  sub store_selfenroll_request { Line 551  sub store_selfenroll_request {
         }          }
         if ($status eq 'pending') {          if ($status eq 'pending') {
             my $token = $info{$cdom.'_'.$cnum}{'token'};              my $token = $info{$cdom.'_'.$cnum}{'token'};
             my ($statusupdate,$pendingform) = &pending_selfenrollment_form($cdom,$cnum,$crstype,$token,$lonhost);              my ($statusupdate,$pendingform) = &pending_selfenrollment_form($r,$cdom,$cnum,$crstype,$token,$lonhost);
             if ($statusupdate eq 'pending') {              if ($statusupdate eq 'pending') {
                 $output .= $pendingform;                  $output .= $pendingform;
             }              }
Line 588  sub store_selfenroll_request { Line 589  sub store_selfenroll_request {
             }              }
             $output = &mt('Your request for self-enrollment has been recorded.').'<br />';              $output = &mt('Your request for self-enrollment has been recorded.').'<br />';
             if ($status eq 'pending') {              if ($status eq 'pending') {
                 my ($statusupdate,$pendingform) = &pending_selfenrollment_form($cdom,$cnum,$crstype,$token,$lonhost);                  my ($statusupdate,$pendingform) = &pending_selfenrollment_form($r,$cdom,$cnum,$crstype,$token,$lonhost);
                 if ($statusupdate eq 'request') {                  if ($statusupdate eq 'request') {
                     $status = $statusupdate;                      $status = $statusupdate;
                 } else {                  } else {
Line 629  sub store_selfenroll_request { Line 630  sub store_selfenroll_request {
 }  }
   
 sub pending_selfenrollment_form {  sub pending_selfenrollment_form {
     my ($cdom,$cnum,$crstype,$token,$lonhost) = @_;      my ($r,$cdom,$cnum,$crstype,$token,$lonhost) = @_;
     my ($status,$output);      my ($status,$output);
     my $coursetype = &Apache::lonuserutils::get_extended_type($cdom,$cnum,$crstype);      my $coursetype = &Apache::lonuserutils::get_extended_type($cdom,$cnum,$crstype);
     my %postvalues = (      my %postvalues = (
Line 663  sub pending_selfenrollment_form { Line 664  sub pending_selfenrollment_form {
                 if ($buttontext eq '') {                  if ($buttontext eq '') {
                     $buttontext = &mt('Complete my enrollment');                      $buttontext = &mt('Complete my enrollment');
                 }                  }
                   my $hostname = &Apache::lonnet::hostname($lonhost);
                 my $protocol = $Apache::lonnet::protocol{$lonhost};                  my $protocol = $Apache::lonnet::protocol{$lonhost};
                 $protocol = 'http' if ($protocol ne 'https');                  $protocol = 'http' if ($protocol ne 'https');
                 my $enroller = $protocol.'://'.&Apache::lonnet::hostname($lonhost).'/cgi-bin/enrollqueued.pl';                  my $alias = &Apache::lonnet::use_proxy_alias($r,$lonhost);
                   $hostname = $alias if ($alias ne '');
                   my $enroller = $protocol.'://'.$hostname.'/cgi-bin/enrollqueued.pl';
                 $output .= '<input type="hidden" name="enroller" value="'.$enroller.'" />'."\n".                  $output .= '<input type="hidden" name="enroller" value="'.$enroller.'" />'."\n".
                            '<input type="hidden" name="token" value="'.$token.'" />'."\n".                             '<input type="hidden" name="token" value="'.$token.'" />'."\n".
                            '<input type="submit" name="validate" value="'.$buttontext.'" />'."\n".                             '<input type="submit" name="validate" value="'.$buttontext.'" />'."\n".
Line 785  sub print_selfenroll_types { Line 789  sub print_selfenroll_types {
   
 sub check_registered {  sub check_registered {
     my ($cdom,$cnum) = @_;      my ($cdom,$cnum) = @_;
     my ($registered,$instsec,$message);      my ($registered,$instsec,$instcid,$message);
     my %settings = &Apache::lonnet::get('environment',['internal.coursecode',      my %settings = &Apache::lonnet::get('environment',['internal.coursecode',
                                         'internal.sectionnums',                                          'internal.sectionnums',
                                         'internal.crosslistings'],$cdom,$cnum);                                          'internal.crosslistings'],$cdom,$cnum);
     my (@allcourses,%LC_code,%affiliates,%reply);      my (@allcourses,%LC_code,%affiliates,%reply);
     &Apache::loncommon::get_institutional_codes(\%settings,\@allcourses,\%LC_code);      &Apache::loncommon::get_institutional_codes($cdom,$cnum,\%settings,\@allcourses,\%LC_code);
     if (@allcourses > 0) {      if (@allcourses > 0) {
         @{$affiliates{$cnum}} = @allcourses;          @{$affiliates{$cnum}} = @allcourses;
         my $outcome = &Apache::lonnet::fetch_enrollment_query('updatenow',\%affiliates,\%reply,$cdom,$cnum);          my $outcome = &Apache::lonnet::fetch_enrollment_query('updatenow',\%affiliates,\%reply,$cdom,$cnum);
Line 805  sub check_registered { Line 809  sub check_registered {
                     if (defined($enrolled{$env{'user.name'}})) {                      if (defined($enrolled{$env{'user.name'}})) {
                         $registered = 1;                          $registered = 1;
                         $instsec = $LC_code{$class};                          $instsec = $LC_code{$class};
                           $instcid = $class;
                         last;                          last;
                     }                      }
                 }                  }
Line 817  sub check_registered { Line 822  sub check_registered {
     } else {      } else {
         $message = &mt('As no institutional course sections are currently associated with this course, your registration status is undetermined.');           $message = &mt('As no institutional course sections are currently associated with this course, your registration status is undetermined.'); 
     }      }
     return ($registered,$instsec,$message);      return ($registered,$instsec,$instcid,$message);
 }  }
   
 1;  1;

Removed from v.1.32  
changed lines
  Added in v.1.37


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>