steffen: server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist list.php, 1.3, 1.4

cvs at intevation.de cvs at intevation.de
Fri Jun 4 12:46:49 CEST 2004


Author: steffen

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

Modified Files:
	list.php 
Log Message:
bugfixes + availability of dist. lists

Index: list.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist/list.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- list.php	28 May 2004 15:49:52 -0000	1.3
+++ list.php	4 Jun 2004 10:46:47 -0000	1.4
@@ -44,6 +44,11 @@
   return '';	  
 }
 
+function domain_dn()
+{
+  return $_SESSION['base_dn'];
+}
+
 function fill_form_for_modify( &$form, &$ldap_object ) {
   if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0];
   else $cn = $ldap_object['cn'];
@@ -53,6 +58,12 @@
   $m = $ldap_object['member'];
   unset( $m['count'] );
   $form->entries['members']['value'] = join("\r\n", $m);
+  $internaldn = 'cn=internal,'.domain_dn();
+  if( substr( $dn, strlen($dn)-strlen( $internaldn ) ) === $internaldn ) {
+	$form->entries['visible']['value'] = false;
+  } else {
+	$form->entries['visible']['value'] = true;
+  }
 }
 
 
@@ -79,6 +90,10 @@
 									  'comment' => 'One DN per line',
 									  'validation' => 'checkemaillist'));
 
+$entries['visible'] = array( 'name' => 'Public',
+							 'type' => 'checkbox',
+							 'value' => true,
+							 'comment' => 'Check here to make this distribution list available to authticated users only');
 
 $entries['action'] = array( 'name' => 'action',
 							'type' => 'hidden' );
@@ -108,7 +123,13 @@
 		$form->setValues();
 		$content = $form->outputForm();
 	  } else {
-		$sf_root = $_SESSION['base_dn'];   
+		$dl_root = domain_dn();
+
+		if (!empty($_POST['visible']) && $_POST['visible'] == "on") 
+		  $visible = true;
+		else $visible = false;
+		if (!$visible) $dl_root = "cn=internal,".$dl_root;
+
 		$ldap_object = array('objectClass' => 'groupOfNames');
 		$cn = trim($_POST['cn']);
 		$ldap_object['cn'] = $cn;
@@ -122,7 +143,7 @@
 
 		if ($action == "save") {
 		  if (!$errors) {
-			if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$sf_root;
+			if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$dl_root;
 			else $newdn = $dn;
 			if (strcmp($dn,$newdn) != 0) {
 			  if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
@@ -147,7 +168,7 @@
 		  // firstsave
 		  if (!$errors) {
 			if( !$ldap_object['member'] ) unset($ldap_object['member']); 
-			$dn = "cn=".$ldap_object['cn'].",".$sf_root;
+			$dn = "cn=".$ldap_object['cn'].",".$dl_root;
 			if ($dn && !ldap_add($ldap->connection, $dn, $ldap_object)) {
 			  array_push($errors, "LDAP Error: Could not add object ".$dn." ".ldap_error($ldap->connection));
 			  debug("dn is $dn");
@@ -164,8 +185,8 @@
 				  $cn = $ldap_object['cn'];
 				  $newcn = md5sum( $dn.$cn );
 				  $ldap_object['cn'] = $newcn; 
-				  $ldap_object['dn'] = 'cn='.$ldap->escape($newcn).','.$sf_root;
-				  if (!ldap_rename($ldap->connection, $dn, 'cn='.$ldap->escape($newcn), $sf_root,true)) {
+				  $ldap_object['dn'] = 'cn='.$ldap->escape($newcn).','.$dl_root;
+				  if (!ldap_rename($ldap->connection, $dn, 'cn='.$ldap->escape($newcn), $dl_root,true)) {
 					$errors[] = "LDAP Error: Could not modify object $dn ".ldap_error($ldap->connection);
 				  }
 				  $error[] = "Mid-air collision detected, email address $mail renamed to $newmail";
@@ -230,14 +251,13 @@
 	break;
   case 'kill':
 	if (!$errors) {
-	  $ldap_object = array();
-	  $ldap_object['deleteflag'] = 'TRUE';
-	  if( ldap_modify($ldap->connection, $dn, $ldap_object) ) {
-		$messages[] = 'Distribution List '.$_REQUEST['cn'].' marked for deletion';
+	  /* Just delete the object and let kolabd clean up */
+	  if( ldap_delete($ldap->connection, $dn ) ) {
+		$messages[] = 'Distribution List '.$_REQUEST['cn'].' deleted';
 		$heading = 'Entry Deleted';
 		$contenttemplate = 'sfdeleted.tpl';
 	  } else {
-		array_push($errors, "LDAP Error: could mark ".$dn." for deletion: ".ldap_error($link));		
+		array_push($errors, "LDAP Error: could delete ".$dn.": ".ldap_error($link));		
 	  }
 	}
 	break;





More information about the commits mailing list