steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php, 1.59, 1.60

cvs at intevation.de cvs at intevation.de
Fri May 27 12:42:46 CEST 2005


Author: steffen

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

Modified Files:
	user.php 
Log Message:
prevent inconsistant groupOfNames objects when changing an account objects DN (Issue745)

Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- user.php	27 Apr 2005 21:39:59 -0000	1.59
+++ user.php	27 May 2005 10:42:44 -0000	1.60
@@ -559,6 +559,19 @@
 		   if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$domain_dn;
 		   else $newdn = $dn;
 		   if (strcmp($dn,$newdn) != 0) {
+			 // Check for distribution lists with this user as member
+			 $ldap->search( $_SESSION['base_dn'], 
+							'(&(objectClass=kolabGroupOfNames)(member='.$ldap->escape($dn).'))',
+							array( 'dn', 'mail' ) );
+			 $distlists = $ldap->getEntries();
+			 unset( $distlists['count'] );
+			 foreach( $distlists as $distlist ) {
+				 $dlcn = $distlist['mail'][0];
+				 $errors[] = _("Account DN could not be modified, distribution list <a href='/admin/distributionlist/list.php?action=modify&dn=")
+				   .urlencode($distlist['dn']).
+				   _("'>'$dlcn'</a> depends on it. To modify this account, first remove it from the distribution list.");
+			 }
+
 			 if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
 				 ($entry=ldap_first_entry($ldap->connection,$result)) &&
 				 ($oldattrs=ldap_get_attributes($ldap->connection,$entry))) {





More information about the commits mailing list