steffen: server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist list.php, 1.11, 1.12

cvs at intevation.de cvs at intevation.de
Fri Aug 13 12:46:10 CEST 2004


Author: steffen

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

Modified Files:
	list.php 
Log Message:
issue216

Index: list.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist/list.php,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- list.php	12 Aug 2004 10:55:39 -0000	1.11
+++ list.php	13 Aug 2004 10:46:08 -0000	1.12
@@ -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>
  *
@@ -38,12 +38,15 @@
 require_once('admin/include/menu.php');
 
 function checkemaillist( $form, $key, $value ) {
+  global $ldap;
   if( $key == 'members' ) {
 	$lst = array_unique( array_filter( array_map( 'trim', preg_split( '/\n/', $value ) ), 'strlen') );
 	if( count($lst) < 1 ) return _('Please add at least one member');
-	/*foreach( $lst as $a ) {
-	  if( !ereg('.*@.*', $a ) ) return 'Invalid email address syntax';
-	}*/
+	foreach( $lst as $a ) {
+	  debug("Trying $a");
+	  ($dn = $ldap->dnForMail($a)) || ($dn = $ldap->dnForUid($a)) || ($dn = $ldap->dnForAlias($a));
+	  if( !$dn ) return _("No user with email address, UID or alias $a");
+	}
   }
   return '';
 }
@@ -79,9 +82,10 @@
   $form->entries['action']['value'] = 'save';
   $m = $ldap_object['member'];
   unset( $m['count'] );
+  debug_var_dump( $m );
   $form->entries['members']['value'] = join("\r\n", 
 											array_map( create_function( '$dn', 
-											'global $ldap;return $ldap->mailForDn($dn);' ), $m) );
+											'global $ldap; return $ldap->mailForDn($dn);' ), $m) );
   $internaldn = 'cn=internal,'.domain_dn();
   debug("internaldn=\"$internaldn\"");
   debug("dn=\"$dn\"");
@@ -157,14 +161,16 @@
 		else $visible = true;
 		if (!$visible) $dl_root = "cn=internal,".$dl_root;
 
-		$ldap_object = array('objectClass' => 'kolabgroupofnames');
+		$ldap_object = array('objectClass' => 'kolabGroupOfNames');
 		$cn = trim($_POST['cn']);
 		$ldap_object['cn'] = $cn;
 		
 		$ldap_object['member'] = array();
 		$lst = array_unique( array_filter( array_map( 'trim', preg_split( '/\n/', trim($_POST['members']) ) ), 'strlen') );
 		foreach( $lst as $a ) {
-		  $memberdn = $ldap->dnForMail($a);
+		  debug("Translating $a");
+		  ($memberdn = $ldap->dnForMail($a)) || ($memberdn = $ldap->dnForUid($a)) || ($memberdn = $ldap->dnForAlias($a));
+		  debug("Found $memberdn");
 		  if( $memberdn ) {
 			$ldap_object['member'][] = $memberdn;
 		  } else {
@@ -253,7 +259,7 @@
 	}
 	break;
   case 'modify':
-	$result = $ldap->search( $dn, '(objectClass=kolabgroupofnames)' );
+	$result = $ldap->search( $dn, '(objectClass=kolabGroupOfNames)' );
 	if( $result ) {
 	  $ldap_object = ldap_get_entries( $ldap->connection, $result );
 	  if( $ldap_object['count'] == 1 ) {
@@ -269,7 +275,7 @@
 	}
 	break;
   case 'delete':
-	$result = $ldap->search( $dn, '(objectClass=kolabgroupofnames)' );
+	$result = $ldap->search( $dn, '(objectClass=kolabGroupOfNames)' );
 	if( $result ) {
 	  $ldap_object = ldap_get_entries( $ldap->connection, $result );
 	  if( $ldap_object['count'] == 1 ) {





More information about the commits mailing list