steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php, 1.61, 1.62
cvs at intevation.de
cvs at intevation.de
Mon May 30 13:53:37 CEST 2005
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user
In directory doto:/tmp/cvs-serv25958/kolab-webadmin/www/admin/user
Modified Files:
user.php
Log Message:
LDAP rename (Issue730)
Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -d -r1.61 -r1.62
--- user.php 28 May 2005 20:56:05 -0000 1.61
+++ user.php 30 May 2005 11:53:35 -0000 1.62
@@ -556,7 +556,7 @@
if ($action == "save") {
if (!$errors) {
- if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$domain_dn;
+ if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap->dn_escape($ldap_object['cn']).",".$domain_dn;
else $newdn = $dn;
if (strcmp($dn,$newdn) != 0) {
// Check for distribution lists with this user as member
@@ -593,13 +593,22 @@
foreach( $ldap_object as $k => $v ) {
if( $v == array() ) unset($ldap_object[$k]);
}
+ $tmprdn = "cn=".str_rand(16);
+ $explodeddn = ldap_explode_dn( $dn, 0 );
+ unset($explodeddn['count']);
+ unset($explodeddn[0]);
+ $tmpbasedn = join(",",$explodeddn);
+ if ( !$errors && !ldap_rename($ldap->connection,$dn,$tmprdn,$tmpbasedn,false) ) {
+ array_push($errors, _("LDAP Error: Could not rename $dn to $tmprdn: ")
+ .ldap_error($ldap->connection));
+ }
if ( !$errors && !ldap_add($ldap->connection,$newdn, $ldap_object) ) {
array_push($errors, _("LDAP Error: Could not rename $dn to $newdn: ")
.ldap_error($ldap->connection));
}
if( !$errors ) {
- if( !ldap_delete($ldap->connection,$dn)) {
- array_push($errors, _("LDAP Error: Could not remove old entry $dn: ")
+ if( !ldap_delete($ldap->connection,$tmprdn.','.$tmpbasedn)) {
+ array_push($errors, _("LDAP Error: Could not remove old entry $tmprdn,$tmpbasedn: ")
.ldap_error($ldap->connection));
}
}
@@ -648,7 +657,7 @@
} else {
// firstsave
if (!$errors) {
- $dn = "cn=".$ldap_object['cn'].$dn_add.",".$domain_dn;
+ $dn = "cn=".$ldap->dn_escape($ldap_object['cn']).$dn_add.",".$domain_dn;
foreach( $ldap_object as $k => $v ) {
if( $v == array() ) unset($ldap_object[$k]);
}
More information about the commits
mailing list