Diff for /loncom/interface/createaccount.pm between versions 1.22 and 1.23

version 1.22, 2008/07/17 12:10:05 version 1.23, 2008/07/17 20:19:43
Line 263  sub print_footer { Line 263  sub print_footer {
                   &Apache::lonhtmlcommon::echo_form_input(['backto','logtoken',                    &Apache::lonhtmlcommon::echo_form_input(['backto','logtoken',
                       'token','serverid','uname','upass','phase','create_with_email',                        'token','serverid','uname','upass','phase','create_with_email',
                       'code','useremail','crypt','cfirstname','clastname',                        'code','useremail','crypt','cfirstname','clastname',
                       'cmiddlename','cgeneration','cpermanentemail','cid]).                        'cmiddlename','cgeneration','cpermanentemail','cid']).
                   '</form>');                    '</form>');
     }      }
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
Line 517  sub process_email_request { Line 517  sub process_email_request {
                                              $contact_email,$captcha_hash{$captcha_chk});                                               $contact_email,$captcha_hash{$captcha_chk});
                     return $output;                      return $output;
                 }                  }
                 my (%rulematch,%inst_results,%curr_rules,%got_rules,%alerts);  
                 my $uhome=&Apache::lonnet::homeserver($useremail,$domain);                  my $uhome=&Apache::lonnet::homeserver($useremail,$domain);
                 if ($uhome eq 'no_host') {                  if ($uhome eq 'no_host') {
                     my $checkhash;                      my (%rulematch,%inst_results,%curr_rules,%got_rules,%alerts);
                     my $checks = { 'username' => 1 };                      &call_rulecheck($useremail,$domain,\%alerts,\%rulematch,
                     $checkhash->{$useremail.':'.$domain} = { 'newuser' => 1, };                                      \%inst_results,\%curr_rules,%got_rules,'username');
                     &Apache::loncommon::user_rule_check($checkhash,$checks,                      if (ref($alerts{'username'}) eq 'HASH') {
                           \%alerts,\%rulematch,\%inst_results,\%curr_rules,                          if (ref($alerts{'username'}{$domain}) eq 'HASH') {
                           \%got_rules);  
                     if (ref($alerts{'useremail'}) eq 'HASH') {  
                         if (ref($alerts{'useremail'}{$domain}) eq 'HASH') {  
                             if ($alerts{'username'}{$domain}{$useremail}) {                              if ($alerts{'username'}{$domain}{$useremail}) {
                                 $output = &invalid_state('userrules',$domdesc,                                  $output = &invalid_state('userrules',$domdesc,
                                                          $contact_name,$contact_email);                                                           $contact_name,$contact_email);
Line 552  sub process_email_request { Line 548  sub process_email_request {
     return $output;      return $output;
 }  }
   
   sub call_rulecheck {
       my ($uname,$udom,$alerts,$rulematch,$inst_results,$curr_rules,
           $got_rules,$tocheck) = @_;
       my ($checkhash,$checks);
       $checkhash->{$uname.':'.$udom} = { 'newuser' => 1, };
       if ($tocheck eq 'username') {
           $checks = { 'username' => 1 };
       }
       &Apache::loncommon::user_rule_check($checkhash,$checks,
              $alerts,$rulematch,$inst_results,$curr_rules,
              $got_rules);
       return;
   }
   
 sub send_token {  sub send_token {
     my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid) = @_;      my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid) = @_;
     my $msg = '<h3>'.&mt('Account creation status').'</h3>'.      my $msg = '<h3>'.&mt('Account creation status').'</h3>'.
Line 866  sub login_failure_msg { Line 876  sub login_failure_msg {
 sub username_check {  sub username_check {
     my ($username,$domain,$domdesc,$courseid,$lonhost,$contact_email,$contact_name,      my ($username,$domain,$domdesc,$courseid,$lonhost,$contact_email,$contact_name,
         $sso_logout) = @_;          $sso_logout) = @_;
     my (%rulematch,%inst_results,$newuser,$checkfail,$rowcount,$editable,$output,$msg,      my (%rulematch,%inst_results,$checkfail,$rowcount,$editable,$output,$msg,
         %alerts,%curr_rules,%got_rules);          %alerts,%curr_rules,%got_rules);
     $newuser = 1;      &call_rulecheck($username,$domain,\%alerts,\%rulematch,
     my $checkhash;                      \%inst_results,\%curr_rules,%got_rules,'username');
     my $checks = { 'username' => 1 };  
     $checkhash->{$username.':'.$domain} = { 'newuser' => $newuser };  
     &Apache::loncommon::user_rule_check($checkhash,$checks,\%alerts,\%rulematch,  
                                         \%inst_results,\%curr_rules,\%got_rules);  
     if (ref($alerts{'username'}) eq 'HASH') {      if (ref($alerts{'username'}) eq 'HASH') {
         if (ref($alerts{'username'}{$domain}) eq 'HASH') {          if (ref($alerts{'username'}{$domain}) eq 'HASH') {
             if ($alerts{'username'}{$domain}{$username}) {              if ($alerts{'username'}{$domain}{$username}) {
Line 999  sub username_activation { Line 1005  sub username_activation {
             }              }
         }          }
         # Call modifyuser          # Call modifyuser
           my (%rulematch,%inst_results,%curr_rules,%got_rules,%alerts,%info);
           &call_rulecheck($username,$domain,\%alerts,\%rulematch,
                           \%inst_results,\%curr_rules,%got_rules);
           my @userinfo = ('firstname','middlename','lastname','generation',
                           'permanentemail','id');
           my %canmodify = 
               &Apache::loncreateuser::selfcreate_canmodify('selfcreate',$domain,
                                                            \@userinfo,\%inst_results);
           foreach my $item (@userinfo) {
               if ($canmodify{$item}) {
                   $info{$item} = $env{'form.c'.$item};
               } else {
                   $info{$item} = $inst_results{$username.':'.$domain}{$item}; 
               }
           }
           if (ref($inst_results{$username.':'.$domain}{'inststatus'}) eq 'ARRAY') {
               my @inststatuses = @{$inst_results{$username.':'.$domain}{'inststatus'}};
               $info{'inststatus'} = join(':',map { &escape($_); } @inststatuses);
           }
         my $result =          my $result =
             &Apache::lonnet::modifyuser($domain,$username,$env{'form.courseid'},              &Apache::lonnet::modifyuser($domain,$username,$env{'form.cid'},
                           $domdefaults{'auth_def'},                            $domdefaults{'auth_def'},
                           $domdefaults{'auth_arg_def'},$env{'form.cfirstname'},                            $domdefaults{'auth_arg_def'},$info{'firstname'},
                           $env{'form.cmiddlename'},$env{'form.clastname'},                            $info{'middlename'},$info{'lastname'},
                           $env{'form.cgeneration'},undef,undef,                            $info{'generation'},undef,undef,
                           $env{'form.cpermanentemail'});                            $info{'permanentemail'},$info{'inststatus'});
         if ($result eq 'ok') {          if ($result eq 'ok') {
             my $delete = &Apache::lonnet::tmpdel($env{'form.authtoken'});              my $delete = &Apache::lonnet::tmpdel($env{'form.authtoken'});
             $output = &mt('A LON-CAPA account has been created for username: [_1] in domain: [_2].',$username,$domain);              $output = &mt('A LON-CAPA account has been created for username: [_1] in domain: [_2].',$username,$domain);

Removed from v.1.22  
changed lines
  Added in v.1.23


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