[LON-CAPA-cvs] cvs: loncom / lchtmldir

matthew lon-capa-cvs@mail.lon-capa.org
Mon, 25 Nov 2002 18:45:55 -0000


matthew		Mon Nov 25 13:45:55 2002 EDT

  Modified files:              
    /loncom	lchtmldir 
  Log:
  Allow creation of public_html directories for users who are not filesystem
  authenticated.  Implement changing ownership of directories to www:www for
  kerberos and local authentication as well as internal authentication.
  
  
Index: loncom/lchtmldir
diff -u loncom/lchtmldir:1.3 loncom/lchtmldir:1.4
--- loncom/lchtmldir:1.3	Thu May  2 23:43:54 2002
+++ loncom/lchtmldir	Mon Nov 25 13:45:55 2002
@@ -117,7 +117,7 @@
 
 if( $authentication ne "unix:"     &&
     $authentication ne "internal:" &&
-    $authentication ne "krb4:"     &&
+    $authentication !~ /^krb(4|5):(.*)/ &&
     $authentication ne "localauth:") {
     if($DEBUG) {
 	print("Invalid authentication parameter: ".$authentication."\n");
@@ -175,7 +175,9 @@
     if($DEBUG) {
 	print("User's home directory $dirtry1 does not exist\n");
     }
-    exit 6;
+    if ($authentication eq "unix:") {
+        exit 6;
+    }
 }
 &EnableRoot;
 
@@ -212,31 +214,13 @@
 # Based on the authentiation mode, set the ownership of the directory.
 
 if($authentication eq "unix:") {	# Unix mode authentication...
-    
-   
     &System("/bin/chown -R   $username".":".$username." ".$fulldir);
     &JoinGroup($username);
-
-
-}
-elsif ($authentication eq "internal:") { # Internal authentication.
-
-    &System("/bin/chown -R www:www  $fulldir");
-}
-elsif ($authentication eq "krb4:") { # Kerberos version 4 authentication
-    &System("/bin/chown -R $username".':'.$username." ".$fulldir);
-    &JoinGroup($username);
-}
-elsif ($authentication eq "localauth:") { # Local authentiation
-    &System("/bin/chown -R  $username".':'.$username."  $fulldir");
-}
-else {
-    if($DEBUG) {
-	print("Authentication not legal".$authentication);
-    }
-    &DisableRoot;
-    exit 5;
-
+} else {
+    # Internal, Kerberos, and Local authentication are for users
+    # who do not have unix accounts on the system.  Therefore we
+    # will give ownership of their public_html directories to www:www
+    &System("/bin/chown -R www:www  ".$fulldir);
 }
 &DisableRoot;
 
@@ -254,6 +238,7 @@
 
 sub EnableRoot {
     if ($wwwid==$>) {
+        print ("EnableRoot $< $>\n");
 	($<,$>)=($>,$<);
 	($(,$))=($),$();
     }
@@ -261,7 +246,7 @@
 	# root capability is already enabled
     }
     if($DEBUG) {
-	print("Enable Root - id =  $> \n");
+	print("Enable Root - id =  $> $<\n");
     }
     return $>;  
 }