X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fusers%2Ftabs_user.inc;h=6822ab713c1d4c68fde29754ccc2f3e945594e17;hb=b8358a5412b082ef08c36c441a85a4a651d84f7a;hp=451d9f973f2f1b84184179214f38b627134d963b;hpb=e299f0ca47a924516f2afbe4e922f2418b75315c;p=gosa.git diff --git a/plugins/admin/users/tabs_user.inc b/plugins/admin/users/tabs_user.inc index 451d9f973..6822ab713 100644 --- a/plugins/admin/users/tabs_user.inc +++ b/plugins/admin/users/tabs_user.inc @@ -18,15 +18,33 @@ class usertabs extends tabs $baseobject= $this->by_object['user']; foreach ($this->by_object as $name => $obj){ + /* Adding uid to sub plugins of connectivity */ + if($name == "connectivity"){ + foreach ($obj->plugin_name as $plg_name){ + if(isset($obj->plugin[$plg_name]->uid)){ + $obj->plugin[$plg_name]->uid = $baseobject->uid; + } + } + } + + /* Copy mail if needed */ + if ($name == "gofaxAccount"){ + if (isset($this->by_object['mailAccount']) && $this->by_object['mailAccount']->is_account){ + $obj->mail= $this->by_object['mailAccount']->mail; + } + } + /* Don't touch base object */ if ($name != 'user'){ $obj->parent= &$this; $obj->uid= $baseobject->uid; $obj->sn= $baseobject->uid; $obj->givenName= $baseobject->uid; - $this->by_object[$name]= $obj; } + /* Store changes */ + $this->by_object[$name]= $obj; + /* Update parent in base object */ $this->by_object['user']->parent= &$this; } @@ -66,8 +84,14 @@ class usertabs extends tabs /* Check for new 'dn', in order to propagate the 'dn' to all plugins */ $baseobject= $this->by_object['user']; + if ($baseobject->personalTitle == ""){ + $pt= ""; + } else { + $pt= $baseobject->personalTitle." "; + } + if ($this->dn == 'new'){ - $baseobject->cn= $baseobject->givenName." ".$baseobject->sn; + $baseobject->cn= $tp.$baseobject->givenName." ".$baseobject->sn; $this->by_object['user']= $baseobject; if (isset($this->config->current['DNMODE']) && $this->config->current['DNMODE'] == "uid"){ $this->dn= 'uid='.$baseobject->uid.','.get_people_ou().$baseobject->base; @@ -81,14 +105,27 @@ class usertabs extends tabs if (isset($this->config->current['DNMODE']) && $this->config->current['DNMODE'] == "uid"){ $new_dn= 'uid='.$baseobject->uid.','.get_people_ou().$baseobject->base; } else { - $new_dn= "cn=".$baseobject->givenName." ".$baseobject->sn.','. + $new_dn= "cn=".$pt.$baseobject->givenName." ".$baseobject->sn.','. get_people_ou().$baseobject->base; } - + + /* Hickert: 31.08.2005 + * fixed error = Trying to overwrite cn=*** which already exists. + * If you changed one of the "Name" / "Givenname" attributes to lower or upper case, like "test" to "Test", (in DNMODE=cn) + * the old_dn and new dn were different. cn=test ... cn=Test ... + * The following code decided to move the entry from old_dn to new_dn. (Because they differ) + * But the ldap attribute cn is not case sensitive and the function plugin::move() quits with + * an error, because source and destination dn are both the same (for ldap, but not for php). + * This fix allow you to change the givenname or name attributes. + */ + if(strtolower($this->dn)==strtolower($new_dn)){ + $this->dn=$new_dn; + } + if ($this->dn != $new_dn){ /* Write entry on new 'dn' */ - $baseobject->cn= $baseobject->givenName." ".$baseobject->sn; + $baseobject->cn= $pt.$baseobject->givenName." ".$baseobject->sn; $baseobject->move($this->dn, $new_dn); $this->by_object['user']= $baseobject; @@ -109,6 +146,16 @@ class usertabs extends tabs $this->by_object[$key]->is_template= TRUE; } } + + function saveCopyDialog() + { + tabs::saveCopyDialog(); + $baseobject= $this->by_object['user']; + $uid = $baseobject->uid; + foreach($this->by_object as $name => $obj){ + $this->by_object[$name]->uid = $uid; + } + } }