steffen: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php, 1.10.2.4, 1.10.2.5
cvs at intevation.de
cvs at intevation.de
Wed Mar 29 13:29:00 CEST 2006
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook
In directory doto:/tmp/cvs-serv17853/kolab-webadmin/www/admin/addressbook
Modified Files:
Tag: kolab_2_0_branch
addr.php
Log Message:
Backport of fix for issue848
Index: addr.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/Attic/addr.php,v
retrieving revision 1.10.2.4
retrieving revision 1.10.2.5
diff -u -d -r1.10.2.4 -r1.10.2.5
--- addr.php 21 Feb 2006 02:33:07 -0000 1.10.2.4
+++ addr.php 29 Mar 2006 11:28:58 -0000 1.10.2.5
@@ -188,19 +188,32 @@
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, _("LDAP Error: could not rename ").$dn.
- " to ".$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='/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, _("LDAP Error: could not rename ").$dn.
+ " to ".$newdn." ".ldap_error($ldap->connection));
+ } else {
+ $messages[] = sprintf(_("%s successfully updated"), $newdn);
+ }
+ $dn = $newdn;
} else {
- $messages[] = sprintf(_("%s successfully updated"), $newdn);
+ array_push($errors,_("LDAP Error: could not read ").$dn.": ".ldap_error($ldap->connection));
}
- $dn = $newdn;
- } else {
- array_push($errors,_("LDAP Error: could not read ").$dn.": ".ldap_error($ldap->connection));
}
} else {
if (!ldap_modify($ldap->connection, $dn, $ldap_object)) {
More information about the commits
mailing list