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