index 0b50f3fd348f4b78cb36d43647f3049b42480185..6cbec1b4eddc6cf2a5559cf6b04e21b406a3c27c 100644 (file)
--- a/include/class_plugin.inc
+++ b/include/class_plugin.inc
* $old_dn specifies the actually used dn
* $new_dn specifies the destiantion dn
*/
* $old_dn specifies the actually used dn
* $new_dn specifies the destiantion dn
*/
- function update_acls($old_dn,$new_dn)
+ function update_acls($old_dn,$new_dn,$output_changes = FALSE)
{
global $config;
{
global $config;
return;
}
return;
}
+ /* Update userinfo if necessary */
+ if($_SESSION['ui']->dn == $old_dn){
+ $_SESSION['ui']->dn = $new_dn;
+ gosa_log(_("Updated current user dn from '".$old_dn."' to '".$new_dn."'"));
+ }
+
/* Object was moved, ensure that all acls will be moved too */
if($new_dn != $old_dn && $old_dn != "new"){
/* Object was moved, ensure that all acls will be moved too */
if($new_dn != $old_dn && $old_dn != "new"){
/* Check if member match current dn */
foreach($members as $key => $member){
/* Check if member match current dn */
foreach($members as $key => $member){
-
$member = base64_decode($member);
if($member == $old_dn){
$found = true;
$members[$key] = base64_encode($new_dn);
}
}
$member = base64_decode($member);
if($member == $old_dn){
$found = true;
$members[$key] = base64_encode($new_dn);
}
}
-
+
+ /* Create new member string */
$new_members = "";
foreach($members as $member){
$new_members .= $member.",";
$new_members = "";
foreach($members as $member){
$new_members .= $member.",";
$new_members = preg_replace("/,$/","",$new_members);
$acl_parts[2] = $new_members;
$new_members = preg_replace("/,$/","",$new_members);
$acl_parts[2] = $new_members;
+ /* Reconstruckt acl entry */
$acl_str ="";
foreach($acl_parts as $t){
$acl_str ="";
foreach($acl_parts as $t){
- $acl_str .= $t.":";
+ $acl_str .= $t.":";
}
$acl_str = preg_replace("/:$/","",$acl_str);
}
$acl_str = preg_replace("/:$/","",$acl_str);
-
- $acls[] = $acl_str;
-
}
}
- /* Acls for this object must be adjusted */
- if($found){
-
- echo "Changing ACL dn from : <br> - <b> to".$old_dn."</b><br> - <b>".$new_dn."</b><br>";
+ /* Acls for this object must be adjusted */
+ if($found){
+
+ if($output_changes){
+ echo "<font color='green'>".
+ _("Changing ACL dn")." : <br> -"._("from")." <b> ".
+ $old_dn.
+ "</b><br> -"._("to")." <b>".
+ $new_dn.
+ "</b></font><br>";
+ }
$update[$attrs['dn']] =array();
foreach($acls as $acl){
$update[$attrs['dn']]['gosaAclEntry'][] = $acl;
$update[$attrs['dn']] =array();
foreach($acls as $acl){
$update[$attrs['dn']]['gosaAclEntry'][] = $acl;