[LON-CAPA-cvs] cvs: loncom(version_1_1_1_s17) /auth loncacc.pm

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 27 Jan 2004 23:06:22 -0000


albertel		Tue Jan 27 18:06:22 2004 EDT

  Modified files:              (Branch: version_1_1_1_s17)
    /loncom/auth	loncacc.pm 
  Log:
  - backport 1.33 to 1.1.1 for installation on s17
  
  
  
Index: loncom/auth/loncacc.pm
diff -u loncom/auth/loncacc.pm:1.31 loncom/auth/loncacc.pm:1.31.2.1
--- loncom/auth/loncacc.pm:1.31	Sat Sep 20 13:44:22 2003
+++ loncom/auth/loncacc.pm	Tue Jan 27 18:06:22 2004
@@ -2,7 +2,7 @@
 # Cookie Based Access Handler for Construction Area
 # (lonacc: 5/21/99,5/22,5/29,5/31 Gerd Kortemeyer)
 #
-# $Id: loncacc.pm,v 1.31 2003/09/20 17:44:22 www Exp $
+# $Id: loncacc.pm,v 1.31.2.1 2004/01/27 23:06:22 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -43,6 +43,8 @@
 use CGI::Cookie();
 use Fcntl qw(:flock);
 use Apache::lonlocal;
+use Apache::lonnet();
+
 
 sub constructaccess {
     my ($url,$ownerdomain)=@_;
@@ -50,17 +52,24 @@
     unless (($ownername) && ($ownerdomain)) { return ''; }
     # We do not allow editing of previous versions of files.
     if ($url=~/\.(\d+)\.(\w+)$/) { return ''; }
-    if (($ownername eq $ENV{'user.name'}) &&
-        ($ownerdomain eq $ENV{'user.domain'})) {
-	return ($ownername,$ownerdomain);
+    my @possibledomains = &Apache::lonnet::current_machine_domains();
+    &Apache::lonnet::logthis("got domains of ".join(':',@possibledomains));
+    if ($ownername eq $ENV{'user.name'}) {
+	foreach my $domain (@possibledomains) {
+	    if ($domain eq $ENV{'user.domain'}) {
+		return ($ownername,$domain);
+	    }
+	}
     }
+    
 
-    my $capriv='user.priv.ca./'.
-               $ownerdomain.'/'.$ownername.'./';
-    foreach (keys %ENV) {
-        if ($_ eq $capriv) {
-           return ($ownername,$ownerdomain);
-        }
+    foreach my $domain (@possibledomains) {
+	my $capriv='user.priv.ca./'.$domain.'/'.$ownername.'./';
+	foreach (keys %ENV) {
+	    if ($_ eq $capriv) {
+		return ($ownername,$domain);
+	    }
+	}
     }
     return '';
 }