summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 008af22)
raw | patch | inline | side by side (parent: 008af22)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 15 May 2008 13:43:01 +0000 (13:43 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 15 May 2008 13:43:01 +0000 (13:43 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@10919 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/include/class_ldap.inc | patch | blob | history |
index 67921e0ba5565eb140520d50b3ee40baabe44f50..2bbb1d875ee9a5365f04a675af57c5ed22f27b1e 100644 (file)
*/
function rename_dn($source,$dest)
{
+ /* Check if source and destination are the same entry */
+ if(strtolower($source) == strtolower($dest)){
+ trigger_error("Source and destination can't be the same entry.");
+ return(FALSE);
+ }
+
+ /* Check if destination entry exists */
+ if($this->dn_exists($dest)){
+ trigger_error("Destination '$dest' already exists.");
+ return(FALSE);
+ }
+
/* Extract the name and the parent part out ouf source dn.
e.g. cn=herbert,ou=department,dc=...
- parent => ou=department,dc=...
- dest => cn=herbert
+ parent => ou=department,dc=...
+ dest_rdn => cn=herbert
*/
- $parent = preg_replace("/^[^,]+,/","",$dest);
- $dest = preg_replace("/,.*$/","",$dest);
+ $parent = preg_replace("/^[^,]+,/","",$dest);
+ $dest_rdn = preg_replace("/,.*$/","",$dest);
if($this->hascon){
if ($this->reconnect) $this->connect();
- $r= @ldap_rename($this->cid,$source,$dest,$parent,TRUE);
+ $r= @ldap_rename($this->cid,$source,$dest_rdn,$parent,TRUE);
$this->error = @ldap_error($this->cid);
+
+ /* Check if destination dn exists, if not the
+ server may not support this operation */
+ $r &= $this->dn_exists($dest);
return(!$r ? $r : TRUE);
}else{
$this->error = "Could not connect to LDAP server";