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

raeburn raeburn at source.lon-capa.org
Thu Feb 9 17:01:34 EST 2012


raeburn		Thu Feb  9 22:01:34 2012 EDT

  Modified files:              (Branch: loncapaMITrelate_1)
    /loncom/auth	lonauth.pm 
  Log:
  - Customization for MITrelate
    - Backport 1.111.
    - Fix refs -- cancreate is an array ref; form is a HASH ref.
    - Pass domain description as additional arg in calls to &create_account()
  
  
Index: loncom/auth/lonauth.pm
diff -u loncom/auth/lonauth.pm:1.101.8.9.2.1 loncom/auth/lonauth.pm:1.101.8.9.2.2
--- loncom/auth/lonauth.pm:1.101.8.9.2.1	Mon Feb  6 03:27:59 2012
+++ loncom/auth/lonauth.pm	Thu Feb  9 22:01:34 2012
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # User Authentication Module
 #
-# $Id: lonauth.pm,v 1.101.8.9.2.1 2012/02/06 03:27:59 raeburn Exp $
+# $Id: lonauth.pm,v 1.101.8.9.2.2 2012/02/09 22:01:34 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -82,9 +82,13 @@
         my $now=time;
         my $then=$env{'user.login.time'};
         my $refresh=$env{'user.refresh.time'};
+        my $update=$env{'user.update.time'};
+        if (!$update) {
+            $update = $then;
+        }
         if (exists($env{$envkey})) {
             my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus);
-            &Apache::lonnet::role_status($envkey,$then,$refresh,$now,\$role,\$where,
+            &Apache::lonnet::role_status($envkey,$update,$refresh,$now,\$role,\$where,
                                          \$trolecode,\$tstatus,\$tstart,\$tend);
             if ($tstatus eq 'is') {
                 $destination  .= ($destination =~ /\?/) ? '&' : '?';
@@ -111,6 +115,10 @@
             $destination .= '&destinationurl='.$destsymb;
         }
     }
+    if ($destination =~ m{^/adm/roles}) {
+        $destination  .= ($destination =~ /\?/) ? '&' : '?';
+        $destination .= 'source=login';
+    }
 
     my $windowinfo=&Apache::lonmenu::open($env{'browser.os'});
     my $startupremote=&Apache::lonmenu::startupremote($destination);
@@ -334,6 +342,7 @@
 # ---------------------------------------------------------------- Authenticate
 
     my %domconfig = &Apache::lonnet::get_dom('configuration',['usercreation'],$form{'udom'});
+    my $domdesc = &Apache::lonnet::domain($form{'udom'},'description');
     my ($cancreate,$statustocreate) =
         &Apache::createaccount::get_creation_controls($form{'udom'},$domconfig{'usercreation'});
     my $defaultauth;
@@ -364,14 +373,14 @@
                         \%form);
                 return OK;
             } elsif ($authhost eq 'no_account_on_host') {
-                &create_account($r,\%form,\@cancreate,$lc_uname,$contact_name);
+                &create_account($r,\%form,$cancreate,$lc_uname,$contact_name,$domdesc);
                 return OK;
             } else {
                 $form{'uname'} = $lc_uname;
             }
         }
     } elsif ($authhost eq 'no_account_on_host') {
-        &create_account($r,\%form,\@cancreate,$uname,$contact_name);
+        &create_account($r,\%form,$cancreate,$uname,$contact_name,$domdesc);
         return OK;
     }
 
@@ -416,7 +425,7 @@
         }
         return OK;
     } else {
-        if (!&check_can_host($r,\%form,$authhost)) {
+        if (!&check_can_host($r,\%form,$authhost,$domdesc)) {
             my ($otherserver) = &Apache::lonnet::choose_server($form{'udom'});
             if ($otherserver) {
                 &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,
@@ -533,15 +542,14 @@
 }
 
 sub create_account {
-    my ($r,$form,$cancreate,$uname,$contact_name) = @_;
+    my ($r,$form,$cancreate,$uname,$contact_name,$domdesc) = @_;
     return unless((ref($form) eq 'HASH') && (ref($cancreate) eq 'ARRAY'));
     my %domconfig =
         &Apache::lonnet::get_dom('configuration',['usercreation'],$form->{'udom'});
-    if (&check_can_host($r,\%form,'no_account_on_host',$domdesc)) {
+    if (&check_can_host($r,$form,'no_account_on_host',$domdesc)) {
         my $start_page =
             &Apache::loncommon::start_page('Create a user account in LON-CAPA',
                                            '',{'no_inline_link'   => 1,});
-        my $domdesc = &Apache::lonnet::domain($form->{'udom'},'description');
         my $lonhost = $r->dir_config('lonHostID');
         my $origmail = $Apache::lonnet::perlvar{'lonSupportEMail'};
         my $contacts =




More information about the LON-CAPA-cvs mailing list