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

www lon-capa-cvs@mail.lon-capa.org
Mon, 24 Mar 2003 19:46:52 -0000


www		Mon Mar 24 14:46:52 2003 EDT

  Modified files:              
    /loncom	lond 
  Log:
  Toward bug #1329: new "rolesdel" command
  
  
Index: loncom/lond
diff -u loncom/lond:1.116 loncom/lond:1.117
--- loncom/lond:1.116	Sat Mar 22 12:13:40 2003
+++ loncom/lond	Mon Mar 24 14:46:52 2003
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.116 2003/03/22 17:13:40 albertel Exp $
+# $Id: lond,v 1.117 2003/03/24 19:46:52 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1153,6 +1153,48 @@
                            print $client "error: ".($!+0)
 			       ." tie(GDBM) Failed ".
                                    "while attempting rolesput\n";
+                       }
+		      } else {
+                          print $client "refused\n";
+                      }
+# -------------------------------------------------------------------- rolesdel
+                   } elsif ($userinput =~ /^rolesdel/) {
+		       &Debug("rolesdel");
+		    if ($wasenc==1) {
+                       my ($cmd,$exedom,$exeuser,$udom,$uname,$what)
+                          =split(/:/,$userinput);
+		       &Debug("cmd = ".$cmd." exedom= ".$exedom.
+				    "user = ".$exeuser." udom=".$udom.
+				    "what = ".$what);
+                       my $namespace='roles';
+                       chomp($what);
+                       my $proname=propath($udom,$uname);
+                       my $now=time;
+                       {
+			   my $hfh;
+			   if (
+                             $hfh=IO::File->new(">>$proname/$namespace.hist")
+			       ) { 
+                                  print $hfh "D:$now:$exedom:$exeuser:$what\n";
+                                 }
+		       }
+                       my @rolekeys=split(/\&/,$what);
+      if (tie(%hash,'GDBM_File',"$proname/$namespace.db",&GDBM_WRCREAT,0640)) {
+                           foreach $key (@rolekeys) {
+                               delete $hash{$key};
+			       
+                           }
+			   if (untie(%hash)) {
+                              print $client "ok\n";
+                           } else {
+                              print $client "error: ".($!+0)
+				  ." untie(GDBM) Failed ".
+                                      "while attempting rolesdel\n";
+                           }
+                       } else {
+                           print $client "error: ".($!+0)
+			       ." tie(GDBM) Failed ".
+                                   "while attempting rolesdel\n";
                        }
 		      } else {
                           print $client "refused\n";