[LON-CAPA-cvs] cvs: loncom /auth lonauth.pm

raeburn lon-capa-cvs-allow@mail.lon-capa.org
Thu, 10 Jul 2008 00:26:42 -0000


raeburn		Wed Jul  9 20:26:42 2008 EDT

  Modified files:              
    /loncom/auth	lonauth.pm 
  Log:
  User account creation cases:
  - Updating args sent to &createaccount::username_check() to include $lonhost 
     and $contact_email.
  - Set contact e-mail address to the first address in the comma-separated list 
     from loncommon::build_recipient_list().
  - Adding some header lines and wrapping some messages in <span>s for LC_warning 
     or LC_error.
  - Adding advice on e-mail contacts where createaccount::username_check() returns 
     checkfail for authenticated user, where account creation is permitted.
  
  
Index: loncom/auth/lonauth.pm
diff -u loncom/auth/lonauth.pm:1.92 loncom/auth/lonauth.pm:1.93
--- loncom/auth/lonauth.pm:1.92	Fri May 30 15:09:50 2008
+++ loncom/auth/lonauth.pm	Wed Jul  9 20:26:40 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # User Authentication Module
 #
-# $Id: lonauth.pm,v 1.92 2008/05/30 19:09:50 bisitz Exp $
+# $Id: lonauth.pm,v 1.93 2008/07/10 00:26:40 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -212,6 +212,7 @@
     my $role   = $r->dir_config('lonRole');
     my $domain = $r->dir_config('lonDefDomain');
     my $prodir = $r->dir_config('lonUsersDir');
+    my $contact_name = &mt('LON-CAPA helpdesk');
 
 # ---------------------------------------- Get the information from login token
 
@@ -230,6 +231,10 @@
 	    return OK;
 	}
     }
+    if (!&Apache::lonnet::domain($form{'udom'})) {
+        &failed($r,'The domain you provided is not a valid LON-CAPA domain.',\%form);
+        return OK;
+    }
     my ($key,$firsturl)=split(/&/,$tmpinfo);
 
     my $keybin=pack("H16",$key);
@@ -287,18 +292,37 @@
                 &Apache::loncommon::start_page('Create a user account in LON-CAPA',
                                                '',{'no_inline_link'   => 1,});
             my $domdesc = &Apache::lonnet::domain($form{'udom'},'description');
-            my ($output,$checkfail) = &Apache::createaccount::username_check($form{'uname'},
-                                                                  $form{'udom'},$domdesc);
+            my $lonhost = $r->dir_config('lonHostID');
+            my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
+            my $contacts = 
+                &Apache::loncommon::build_recipient_list(undef,'helpdeskmail',
+                                                        $form{'udom'},$origmail);
+            my ($contact_email) = split(',',$contacts); 
+            my ($output,$checkfail) = 
+                &Apache::createaccount::username_check($form{'uname'},$form{'udom'},
+                                                      $domdesc,undef,$lonhost,
+                                                      $contact_email);
             &Apache::loncommon::content_type($r,'text/html');
             $r->send_http_header;
             &Apache::createaccount::print_header($r,$start_page);
-            my $msg = '<h4>'.&mt('Although your username and password were authenticated, you do not currently have a LON-CAPA account in this domain.').'<br />';
+            my $msg = '<h3>'.&mt('Account creation').'</h3>'.
+                      '<span class="LC_cusr_emph">'.&mt('Although your username and password were authenticated, you do not currently have a LON-CAPA account in this domain.').'</span><br />';
             if ($checkfail) {
-                $msg .= &mt('A LON-CAPA account may not be created with the username you used.');
+                $msg .= '<h4>'.&mt('Account creation unavailable').'</h4>';
+                if ($checkfail eq 'username') {
+                    $msg .= '<span class="LC_warning">'.
+                            &mt('A LON-CAPA account may not be created with the username you use.').'</span>';
+                } elsif ($checkfail eq 'authtoken') {
+                    $msg .= '<span class="LC_error">'.&mt('Error creating token.').'</span>';
+                }
+                &Apache::lonnet::logthis("ERROR: failure type of '$checkfail' when performing username check to create account for authenticated user: $form{'uname'}, in domain $form{'udom'}");
+                $msg .= '<br /><br />'.
+                         &mt('Please contact the [_1] ([_2]) for assistance.',
+                             $contact_name,$contact_email);
             } else {
                 $msg .= &mt('To create one, use the table below to provide information about yourself (if appropriate), then click the "Create LON-CAPA account" button.');
             }
-            $r->print('<h4>'.$msg.'</h4>'.$output);
+            $r->print($msg.$output);
             $r->print(&Apache::loncommon::end_page());
             return OK;
         } else {