steffen: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php.in, 1.3, 1.4 index.php.in, 1.1, 1.2

cvs at intevation.de cvs at intevation.de
Wed Mar 29 12:52:16 CEST 2006


Author: steffen

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

Modified Files:
	addr.php.in index.php.in 
Log Message:
Fix for issue848 + some cleanup

Index: addr.php.in
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/addr.php.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- addr.php.in	9 Mar 2006 21:27:22 -0000	1.3
+++ addr.php.in	29 Mar 2006 10:52:14 -0000	1.4
@@ -188,20 +188,33 @@
 			else $newdn = $dn;
 			debug("action=save, dn=$dn, newdn=$newdn<br/>\n");
 			if (strcmp($dn,$newdn) != 0) {
-			  if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
-				  ($entry=ldap_first_entry($ldap->connection,$result)) &&
-				  ($oldattrs=ldap_get_attributes($ldap->connection,$entry))) {
-				foreach( $ldap_object as $k => $v ) if( $v == array() ) unset( $ldap_object[$k] );
-				if (!ldap_add($ldap->connection,$newdn, $ldap_object) || !ldap_delete($ldap->connection,$dn)) {
-				  array_push($errors, sprintf(_("LDAP Error: could not rename %s to %s: %s"), $dn,
-											  $newdn, ldap_error($ldap->connection)));
+			  // Check for distribution lists with this entry as member
+			  $ldap->search( $_SESSION['base_dn'], 
+							 '(&(objectClass=kolabGroupOfNames)(!(kolabDeleteFlag=*))(member='.$ldap->escape($dn).'))',
+							 array( 'dn', 'mail' ) );
+			  $distlists = $ldap->getEntries();
+			  unset( $distlists['count'] );
+			  foreach( $distlists as $distlist ) {
+				$dlcn = $distlist['mail'][0];
+				$errors[] = sprintf(_("Addressbook entry DN could not be modified, distribution list <a href='@webserver_web_prefix@/admin/distributionlist/list.php?action=modify&dn=%s'>'%s'</a> depends on it. To modify this entry, first remove it from the distribution list."), urlencode($distlist['dn']), $dlcn );
+			  }
+			  
+			  if( !$errors ) {
+				if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
+					($entry=ldap_first_entry($ldap->connection,$result)) &&
+					($oldattrs=ldap_get_attributes($ldap->connection,$entry))) {
+				  foreach( $ldap_object as $k => $v ) if( $v == array() ) unset( $ldap_object[$k] );
+				  if (!ldap_add($ldap->connection,$newdn, $ldap_object) || !ldap_delete($ldap->connection,$dn)) {
+					array_push($errors, sprintf(_("LDAP Error: could not rename %s to %s: %s"), $dn,
+												$newdn, ldap_error($ldap->connection)));
+				  } else {
+					$messages[] = sprintf( _("%s successfully updated"), $newdn);
+				  }
+				  $dn = $newdn;
 				} else {
-				  $messages[] = sprintf( _("%s successfully updated"), $newdn);
+				  array_push($errors,sprintf(_("LDAP Error: could not read %s: %s"), $dn,
+											 ldap_error($ldap->connection)));
 				}
-				$dn = $newdn;
-			  } else {
-				array_push($errors,sprintf(_("LDAP Error: could not read %s: %s"), $dn,
-										   ldap_error($ldap->connection)));
 			  }
 			} else {
 			  if (!ldap_modify($ldap->connection, $dn, $ldap_object)) {

Index: index.php.in
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/index.php.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- index.php.in	5 Feb 2006 20:13:55 -0000	1.1
+++ index.php.in	29 Mar 2006 10:52:14 -0000	1.2
@@ -1,6 +1,6 @@
 <?php
 /*
- (c) 2004 Klar〓dalens Datakonsult AB
+ (c) 2004 Klaraedalens Datakonsult AB
  (c) 2003 Tassilo Erlewein <tassilo.erlewein at erfrakon.de>
  (c) 2003 Martin Konold <martin.konold at erfrakon.de>
  This program is Free Software under the GNU General Public License (>=v2).
@@ -11,6 +11,7 @@
 require_once('@kolab_php_module_prefix at admin/include/headers.php');
 require_once('@kolab_php_module_prefix at admin/include/locale.php');
 require_once('@kolab_php_module_prefix at admin/include/authenticate.php');
+require_once('@kolab_php_module_prefix at admin/include/form.class.php');
 
 $errors = array();
 
@@ -35,13 +36,14 @@
 else $page = "1";
 
 // Get all entries & dynamically split the letters with growing entries
+$entries = array();
 if( !$errors ) {
   if (isset($_SESSION['base_dn'])) $base_dn = $_SESSION['base_dn'];
   else $base_dn = 'k=kolab';
   $userfilter = "cn=*";
-  $filterattr = $_REQUEST['filterattr'];
-  $filtertype = $_REQUEST['filtertype'];
-  $filtervalue = $_REQUEST['filtervalue'];
+  $filterattr = KolabForm::getRequestVar('filterattr');
+  $filtertype = KolabForm::getRequestVar('filtertype');
+  $filtervalue = KolabForm::getRequestVar('filtervalue');
   if( !in_array( $filterattr, array( 'cn', 'mail' ) ) ) $filterattr = 'cn';
   if( isset( $filtervalue ) && !empty( $filtervalue ) ) {
 	switch( $filtertype ) {
@@ -63,11 +65,11 @@
   if( isset( $_REQUEST['alphalimit']) ) {
 	$ala='sn'; // alpha limit attibute
 	switch( $_REQUEST['alphalimit'] ) {
-	case a: $alphalimit = "(|($ala=a*)($ala=b*)($ala=c*)($ala=d*)($ala=e*)($ala=f*))"; break;
-	case g: $alphalimit = "(|($ala=g*)($ala=h*)($ala=i*)($ala=j*)($ala=k*)($ala=l*))"; break;
-	case m: $alphalimit = "(|($ala=m*)($ala=n*)($ala=o*)($ala=p*)($ala=q*)($ala=r*))"; break;
-	case s: $alphalimit = "(|($ala=s*)($ala=t*)($ala=u*)($ala=v*)($ala=w*)($ala=x*)($ala=y*)($ala=z*))"; break;
-	case other: $alphalimit = "(|($ala=æ*)($ala=ø*)($ala=å*)($ala=ä*)($ala=ö*)($ala=ü*)($ala=0*)($ala=1*)($ala=2*)($ala=3*)($ala=4*)($ala=5*)($ala=6*)($ala=7*)($ala=8*)($ala=9*))"; break;
+	case 'a': $alphalimit = "(|($ala=a*)($ala=b*)($ala=c*)($ala=d*)($ala=e*)($ala=f*))"; break;
+	case 'g': $alphalimit = "(|($ala=g*)($ala=h*)($ala=i*)($ala=j*)($ala=k*)($ala=l*))"; break;
+	case 'm': $alphalimit = "(|($ala=m*)($ala=n*)($ala=o*)($ala=p*)($ala=q*)($ala=r*))"; break;
+	case 's': $alphalimit = "(|($ala=s*)($ala=t*)($ala=u*)($ala=v*)($ala=w*)($ala=x*)($ala=y*)($ala=z*))"; break;
+	case 'other': $alphalimit = "(|($ala=æ*)($ala=ø*)($ala=å*)($ala=ä*)($ala=ö*)($ala=ü*)($ala=0*)($ala=1*)($ala=2*)($ala=3*)($ala=4*)($ala=5*)($ala=6*)($ala=7*)($ala=8*)($ala=9*))"; break;
 	default: $alphalimit = '';
 	}
   }





More information about the commits mailing list