OSSP CVS Repository

ossp - Check-in [2129]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 2129
Date: 2002-May-13 15:05:56 (local)
2002-May-13 13:05:56 (UTC)
User:ps
Branch:
Comment: Appended read in tabea configuration section
Tickets:
Inspections:
Files:
ossp-pkg/tabea/tabea.cgi      1.12 -> 1.13     55 inserted, 6 deleted

ossp-pkg/tabea/tabea.cgi 1.12 -> 1.13

--- tabea.cgi    2002/05/10 15:41:18     1.12
+++ tabea.cgi    2002/05/13 13:05:56     1.13
@@ -35,9 +35,12 @@
 
 $|++;
 
+
+my $cfgfile = "./tabea.cfg";        # Name of configuration file
+
 my $pwdfile = "./tabea.pw";
 my $configsdir = "./tabea.d";
-my $tabeauser = "tabea";
+#my $tabeauser = "tabea";
 
 # establish my configuration
 my $MY = {};
@@ -82,7 +85,10 @@
     }
 }
 
+# Read the configuration
+my %cfghash = read_config($cfgfile);
 
+#print "Test: $cfghash{'TabeaUser'}\n";
 
 #   fetch parameters
 my $dialog   = $cgi->param("dialog")   || "";
@@ -91,6 +97,8 @@
 
 my $page = '';
 
+if ($cfghash{"TabeaUser"} ne '') {
+
 if ($dialog eq "") {
     $page .= $cgi->startform( -method => "POST", -action => $cgi->url(-full => 1)) .
 #        $cgi->hidden(-name => 'form', -default => ['login']) .
@@ -130,10 +138,10 @@
     #   enter Select form
 
     
-    &validpassword($username, $password, $pwdfile) || print STDOUT $cgi->redirect(-uri => $cgi->url(-full => 1), -type => "text/html");
+    &validpassword($username, $password, $cfghash{'BaseDir'}.$cfghash{'PasswdFile'}) || print STDOUT $cgi->redirect(-uri => $cgi->url(-full => 1), -type => "text/html");
 
-    my $templatesfiles = &readdir($configsdir."/".$tabeauser);
-    my $configsfiles = &readdir($configsdir."/".$username);
+    my $templatesfiles = &readdir($cfghash{'BaseDir'} . $cfghash{'ConfigDir'} ."/".$cfghash{'TabeaUser'});
+    my $configsfiles = &readdir($cfghash{'BaseDir'} . $cfghash{'ConfigDir'} ."/".$username);
 
     my @templatesarray = split(/ /,$templatesfiles);
     my @configsarray = split(/ /,$configsfiles);
@@ -225,7 +233,7 @@
     #   enter Edit form
 #    &validpassword($username, $password, $pwdfile) || print STDOUT $cgi->redirect(-uri => $cgi->url(-full => 1), -type => "text/html");
     if ($cgi->param('configslist')) {
-    my $filename = $configsdir . "/" . $username . "/" . $cgi->param('configslist');
+    my $filename = $cfghash{'BaseDir'} . $cfghash{'ConfigDir'} . "/" . $username . "/" . $cgi->param('configslist');
     &editconfig($filename, 'w', $username);
     } else {
     $page .= $cgi->startform( -method => "POST", -action => $cgi->url(-full => 1)) .
@@ -239,7 +247,7 @@
     #   enter View form
 #    &validpassword($username, $password, $pwdfile) || print STDOUT $cgi->redirect(-uri => $cgi->url(-full => 1), -type => "text/html");
     if ($cgi->param('templatelist')) {
-    my $filename = $configsdir . "/" . $tabeauser . "/" . $cgi->param('templatelist');
+    my $filename = $cfghash{'BaseDir'} . $cfghash{'ConfigDir'} . "/" . $cfghash{'TabeaUser'} . "/" . $cgi->param('templatelist');
     &editconfig($filename, 'r', $username);
     } else {
     $page .= $cgi->startform( -method => "POST", -action => $cgi->url(-full => 1)) .
@@ -252,6 +260,10 @@
     die "invalid dialog \"$dialog\"";
 }
 
+} else {
+    die "no configuration found";
+}
+
 my $out = $MY->{TEMPLATE};
 $out =~ s|%%BODY%%|$page|s;
 $out =~ s|%%TITLE%%|Test|s;
@@ -260,6 +272,42 @@
 
 exit (0);
 
+########################################################################################
+sub read_config {
+########################################################################################
+
+my ($cfgfile) = @_;   
+my %cfghash ;
+my $cfgin ;
+my $key;
+my $content;
+
+print "Lese file: $cfgfile\n"; 
+$cfgin = IO::File->new("<$cfgfile");
+
+if (defined $cfgin) {
+    LOOP: while(<$cfgin>) { 
+    
+
+        $_ =~ s|^\s+(.*?)|{$_=$1}|es;       # Remove whitespaces at the beginning 
+        next LOOP if $_ =~ /^\n/;           # Remove the first empty require 
+        next LOOP if $_ eq "";              # Remove empty line
+        next LOOP if $_ =~/^#/;             # Remove comment lines
+
+        $_ =~ s|^([^#]+)#(.*)$|{$_=$1}|es;  # Remove comments on the end 
+        $_ =~ s|(.*?)\s+$|{$_=$1}|es;       # Remove whitespaces at the end 
+
+
+        ($key, $content) =  /^(\w+)\s+(.*)$/;
+
+        $cfghash{$key} = $content;
+    }
+    $cfgin->close;
+}
+
+return (%cfghash);
+}
+########################################################################################
 
 
 
@@ -320,6 +368,7 @@
     my ($file, $mode, $user) = @_;
     my $text = '';
     my $filein ;
+     
 
     $filein = IO::File->new("<$file");
     while(<$filein>) { $text .= $_; }

CVSTrac 2.0.1