steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user forward.php, 1.6, 1.7 vacation.php, 1.6, 1.7

cvs at intevation.de cvs at intevation.de
Thu Nov 18 03:16:42 CET 2004


Author: steffen

Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user
In directory doto:/tmp/cvs-serv11633/kolab-webadmin/www/admin/user

Modified Files:
	forward.php vacation.php 
Log Message:
first steps towards cleaning up the sieve stuff

Index: forward.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/forward.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- forward.php	5 Nov 2004 13:31:09 -0000	1.6
+++ forward.php	18 Nov 2004 02:16:40 -0000	1.7
@@ -1,6 +1,6 @@
 <?php
 /*
- *  Copyright (c) 2004 Klarälvdalens Datakonsult AB
+ *  Copyright (c) 2004 KlarÃ��¿½ï¿½Â¿Â½Ã¯Â¿Â½Ã��¤lvdalens Datakonsult AB
  *
  *    Written by Steffen Hansen <steffen at klaralvdalens-datakonsult.se>
  *
@@ -21,6 +21,7 @@
 require_once 'admin/include/mysmarty.php';
 require_once 'admin/include/headers.php';
 require_once 'admin/include/authenticate.php';
+require_once 'admin/include/sieveutils.class.php';
 
 // Funny multiline string escaping in Sieve
 function dotstuff( $str ) {
@@ -51,16 +52,10 @@
 if( !$errors ) {
   $obj = $ldap->read( $auth->dn() );
   $sieve =& new Net_Sieve( $auth->uid(), $auth->password(), $obj['kolabHomeServer'][0] );
+  $scripts = $sieve->listScripts();
 
   // Fetch script data from server
-  $scripts = $sieve->listScripts();
-  if( in_array( "kolab-deliver.siv", $scripts ) ) {
-	$deliverscript = $sieve->getScript( $scriptname );
-	
-	if( ereg('fileinto "INBOX/(.*)";', $deliverscript, $regs ) ) {
-	  $inbox = $regs[1];
-	}
-  }
+  $inbox = SieveUtils::getDeliverFolder( $sieve );
   
   // Update sieve script on server in case we have submit data
   if( $_REQUEST['submit'] ) {
@@ -93,11 +88,8 @@
   }
 
   if( in_array( $scriptname, $scripts ) ) {
-	$script = $sieve->getScript( $scriptname );
-	if( ereg('redirect "(.*)";', $script, $regs ) ) {
-	  $address = $regs[1];
-	}
-	$keep = ereg('"; keep;', $script, $regs );
+	$address = SieveUtils::getForwardAddress( $sieve );
+	$keep = SieveUtils::getKeepOnServer( $sieve );
   } else {
 	$address = '';
 	$keep = true;

Index: vacation.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/vacation.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- vacation.php	5 Nov 2004 13:31:09 -0000	1.6
+++ vacation.php	18 Nov 2004 02:16:40 -0000	1.7
@@ -1,6 +1,6 @@
 <?php
 /*
- (c) 2004 Klarälvdalens Datakonsult AB
+ (c) 2004 Klarälvdalens Datakonsult AB
 
  This program is Free Software under the GNU General Public License (>=v2).
  Read the file COPYING that comes with this packages for details.
@@ -9,15 +9,7 @@
 require_once 'admin/include/mysmarty.php';
 require_once 'admin/include/headers.php';
 require_once 'admin/include/authenticate.php';
-
-// Funny multiline string escaping in Sieve
-function dotstuff( $str ) {
-  return str_replace( "\n.", "\n..", $str );
-}
-
-function undotstuff( $str ) {
-  return str_replace( "\n..", "\n.", $str );
-}
+require_once 'admin/include/sieveutils.class.php';
 
 $errors = array();
 if( (@include_once 'admin/include/Sieve.php' ) === false ) {
@@ -38,16 +30,10 @@
 if( !$errors ) {
   $obj = $ldap->read( $auth->dn() );
   $sieve =& new Net_Sieve( $auth->uid(), $auth->password(), $obj['kolabHomeServer'][0] );
+  $scripts = $sieve->listScripts();
 
   // Fetch script data from server
-  $scripts = $sieve->listScripts();
-  if( in_array( "kolab-deliver.siv", $scripts ) ) {
-	$deliverscript = $sieve->getScript( $scriptname );
-	
-	if( ereg('fileinto "INBOX/(.*)";', $deliverscript, $regs ) ) {
-	  $inbox = $regs[1];
-	}
-  }
+  $inbox = SieveUtils::getDeliverFolder($sieve);
 
   // Update sieve script on server in case we have submit data
   if( $_REQUEST['submit'] ) {
@@ -57,7 +43,7 @@
 	  "require \"fileinto\";\r\n\r\n".
 	  "vacation :addresses [ \"".join('", "', $addresses )."\" ] :days ".
 	  $_REQUEST['days']." text:\r\n".
-	  dotstuff($_REQUEST['text'])."\r\n.\r\n;\r\n\r\n";
+	  SieveUtils::dotstuff($_REQUEST['text'])."\r\n.\r\n;\r\n\r\n";
 	if( $inbox ) {
 	  $script .= "if header :contains [\"X-Kolab-Scheduling-Message\"] [\"FALSE\"] {\r\nfileinto \"INBOX/$inbox\";\r\n}\r\n";
 	}
@@ -79,24 +65,9 @@
   }
 
   if( in_array( $scriptname, $scripts ) ) {
-	$script = $sieve->getScript( $scriptname );
-	//debug("<pre>".htmlentities($script)."</pre>");
-	if( ereg(':addresses \[([^\]]*)\]', $script, $regs ) ) {
-	  $tmp = split(',', $regs[1] );
-	  $addresses = array();
-	  foreach( $tmp as $a ) {
-		if( ereg('^ *"(.*)" *$', $a, $regs ) ) $addresses[] = $regs[1];
-		else $addresses[] = $a;
-	  }
-	}
-	if( ereg(':days ([0-9]+)', $script, $regs ) ) {
-	  $days = $regs[1];
-	}
-	if( ereg("text:\r\n(.*)\r\n\\.\r\n", $script, $regs ) ) {
-	  $text = $regs[1];
-	  $text = str_replace( '\n', "\r\n", $text );
-	  $text = undotstuff($text);
-	}
+	$addresses = SieveUtils::getVacationAddresses( $sieve );
+	$days = SieveUtils::getVacationDays( $sieve );
+	$text = SieveUtils::getVacationText( $sieve );
   }
   if( !$addresses ) {
 	$object = $ldap->read( $auth->dn() );





More information about the commits mailing list