[LON-CAPA-cvs] cvs: loncom /interface createaccount.pm

raeburn lon-capa-cvs-allow@mail.lon-capa.org
Sat, 12 Jul 2008 14:08:58 -0000


raeburn		Sat Jul 12 10:08:58 2008 EDT

  Modified files:              
    /loncom/interface	createaccount.pm 
  Log:
  - Add &sso_logout_frag() to provide a link to logout of an SSO session if username creation is not possible.
  - Moved some <br /> for a more compact display for SSO authenticated case.
  - Typo in an <h4></h4> header line.  
  
  
Index: loncom/interface/createaccount.pm
diff -u loncom/interface/createaccount.pm:1.16 loncom/interface/createaccount.pm:1.17
--- loncom/interface/createaccount.pm:1.16	Fri Jul 11 11:44:32 2008
+++ loncom/interface/createaccount.pm	Sat Jul 12 10:08:58 2008
@@ -3,7 +3,7 @@
 # institutional log-in ID (institutional authentication required - localauth
 #  or kerberos) or an e-mail address.
 #
-# $Id: createaccount.pm,v 1.16 2008/07/11 15:44:32 raeburn Exp $
+# $Id: createaccount.pm,v 1.17 2008/07/12 14:08:58 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -127,31 +127,36 @@
 
     if ($sso_username ne '') {
         &print_header($r,$start_page);
-        my ($output,$msg);
+        my $msg;
         if (grep(/^sso$/,@cancreate)) {
             $msg = '<h3>'.&mt('Account creation').'</h3>'.
-                   &mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution.").'<br /><br />';
-            ($output, my $checkfail) = &username_check($sso_username,$domain,
-                                                       $domdesc,$courseid,
-                                                       $lonhost,$contact_email);
+                   &mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution.").'<br />';
+            my ($output,$checkfail) = &username_check($sso_username,$domain,
+                                                      $domdesc,$courseid,
+                                                      $lonhost,$contact_email);
             if ($checkfail) {
-                $msg .= '<h4>'.&mt('Account creation unavailable');'</h4>';
+                $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>';
+                            &mt('A LON-CAPA account may not be created with the username you use.').
+                            '</span><br /><br />'.$output;
                 } elsif ($checkfail eq 'authtoken') {
-                    $msg .= '<span class="LC_error">'.&mt('Error creating token.').'</span>';
+                    $msg .= '<span class="LC_error">'.&mt('Error creating token.').'</span>'.
+                            '<br />'.$output;
                 }
-                $msg .= '<br /><br />'.
-                        &mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email);
+                $msg .= &mt('Please contact the [_1] ([_2]) for assistance.',
+                            $contact_name,$contact_email).'<br /><hr />'.
+                        &sso_logout_frag($r,$domain);    
+
             } 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.');
+                $msg .= '<br />'.&mt('To create one, use the table below to provide information about yourself (if appropriate), then click the "Create LON-CAPA account" button.').'<br />'.$output;
             }
         } else {
-            $msg .= '<h3>'.&mt('Account creation unavailable').'</h3>'.
-                    '<span class="LC_warning">'.&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution, and you are not permitted to create one.").'</span><br /><br />'.&mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email);
+            $msg = '<h3>'.&mt('Account creation unavailable').'</h3>'.
+                   '<span class="LC_warning">'.&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution, and you are not permitted to create one.").'</span><br /><br />'.&mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email).'<hr />'.
+                   &sso_logout_frag($r,$domain);
         }
-        $r->print($msg.'<br />'.$output);
+        $r->print($msg);
         $r->print(&Apache::loncommon::end_page());
         return OK;
     }
@@ -524,7 +529,7 @@
                                                        $data{'username'},$domdesc);
                 if ($result eq 'ok') {
                     $msg = $output; 
-                    my $shownow = localtime($now);
+                    my $shownow = &Apache::lonlocal::locallocaltime($now);
                     my $mailmsg = &mt('A LON-CAPA account for the institution: [_1] has been created [_2] from IP address: [_3].  If you did not perform this action or authorize it, please contact the [_4] ([_5]).',$domdesc,$shownow,$ENV{'REMOTE_ADDR'},$contact_name,$contact_email)."\n";
                     my $mailresult = &Apache::resetpw::send_mail($domdesc,$data{'email'},
                                                                  $mailmsg,$contact_name,
@@ -771,7 +776,8 @@
                 my ($userchkmsg,$checkfail);
                 if (ref($curr_rules{$domain}) eq 'HASH') {
                     $userchkmsg =
-                        &Apache::loncommon::instrule_disallow_msg('username',$domdesc,1).
+                        &Apache::loncommon::instrule_disallow_msg('username',$domdesc,1,
+                                                                  'selfcreate').
                         &Apache::loncommon::user_rule_formats($domain,$domdesc,
                                 $curr_rules{$domain}{'username'},'username');
                     if ($userchkmsg) {
@@ -934,9 +940,9 @@
     my $msg;
     if ($contact_email ne '') {
         my $escuri = &HTML::Entities::encode('/adm/createaccount','&<>"');
-        $msg .= '<br />'.&mt('You may wish to contact the [_1]LON-CAPA helpdesk[_2] for [_3].','<a href="/adm/helpdesk?origurl='.$escuri.'">','</a>',$domdesc);
+        $msg .= '<br />'.&mt('You may wish to contact the [_1]LON-CAPA helpdesk[_2] for [_3].','<a href="/adm/helpdesk?origurl='.$escuri.'">','</a>',$domdesc).'<br />';
     } else {
-        $msg .= '<br />'.&mt('You may wish to send an e-mail to the LON-CAPA server administrator: [_1] for [_2].',$Apache::lonnet::perlvar{'AdminEmail'},$domdesc);
+        $msg .= '<br />'.&mt('You may wish to send an e-mail to the server administrator: [_1] for [_2].',$Apache::lonnet::perlvar{'AdminEmail'},$domdesc).'<br />';
     }
     return $msg;
 }
@@ -1050,4 +1056,25 @@
     return $format_msg;
 }
 
+sub sso_logout_frag {
+    my ($r,$domain) = @_;
+    my $endsessionmsg;
+    if (defined($r->dir_config('lonSSOUserLogoutMessageFile_'.$domain))) {
+        my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile_'.$domain);
+        if (-e $msgfile) {
+            open(my $fh,"<$msgfile");
+            $endsessionmsg = join('',<$fh>);
+            close($fh);
+        }
+    } elsif (defined($r->dir_config('lonSSOUserLogoutMessageFile'))) {
+        my $msgfile = $r->dir_config('lonSSOUserLogoutMessageFile');
+        if (-e $msgfile) {     
+            open(my $fh,"<$msgfile");
+            $endsessionmsg = join('',<$fh>);
+            close($fh);
+        }
+    }
+    return $endsessionmsg;
+}
+
 1;