index c3d726f1e9a92dd596ec1488fa549c2d83b5fdcc..ecc70d05b982d0bec259cb88c6c23921a7795c19 100644 (file)
function usertabs($config, $data, $dn)
{
- tabs::tabs($config, $data, $dn);
+ tabs::tabs($config, $data, $dn, 'users');
$this->base= $this->by_object['user']->base;
/* Add references/acls/snapshots */
$this->addSpecialTabs();
- $this->set_acl_base();
- /* Set category for environment tab */
- if (isset($this->by_object['environment'])){
- $this->by_object['environment']->set_acl_category('users');
- }
}
function save_object($save_current= FALSE)
$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;
+ }
+ }
+ }
+
/* 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;
}
/* Copy mail if needed */
}
}
+ $this->by_object[$name]= $obj;
+
/* Update parent in base object */
$this->by_object['user']->parent= &$this;
}
/* Check for new 'dn', in order to propagate the
'dn' to all plugins */
$baseobject= $this->by_object['user'];
- if ($this->dn == 'new'){
- $baseobject->cn= $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;
- } else {
- $this->dn= 'cn='.$baseobject->cn.','.get_people_ou().$baseobject->base;
- }
- } // != 'new'
- else
- {
- /* Extract cn and compare with actual cn present in 'dn' */
- 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.','.
- 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;
+ if ($this->dn != 'new'){
+ $new_dn= $baseobject->new_dn;
+ if (strtolower($this->dn) != strtolower($new_dn)){
+
+ /* Udpate acls */
+ $baseobject->update_acls($this->dn,$new_dn);
$baseobject->move($this->dn, $new_dn);
$this->by_object['user']= $baseobject;
/* Did we change ourselves? Update ui object. */
change_ui_dn($this->dn, $new_dn);
-
- /* Happen to use the new one */
- $this->dn= $new_dn;
}
}
+
+ $this->dn= $baseobject->new_dn;
+
return tabs::save();
}