X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_SnapShotDialog.inc;h=66211bfd029c91e024cf433d78f4d7cee8691317;hb=c8e88e997402e4906104cd66cd8e22157209d87f;hp=4d44f0b708e5983a162d5c55e9488db3e28a289a;hpb=b57c77d36fbcf682603db5e7c247d2b6ff6ccee2;p=gosa.git diff --git a/include/class_SnapShotDialog.inc b/include/class_SnapShotDialog.inc index 4d44f0b70..66211bfd0 100755 --- a/include/class_SnapShotDialog.inc +++ b/include/class_SnapShotDialog.inc @@ -4,23 +4,35 @@ class SnapShotDialog extends plugin { var $config; - var $attributes = array("CurrentDescription"); - var $CurrentDescription = ""; - var $parent = NULL; - var $display_restore_dialog = false; /* Defines the restore mode */ - var $display_all_removed_objects= false; /* Specifies which objects will be listed, all snapshots for a single entry - or all snapshots of already deleted objects */ - var $dialog = true; - var $del_dn = ""; + var $attributes= array("CurrentDescription"); + var $CurrentDescription= ""; + var $parent= NULL; + var $display_restore_dialog= false; /* Defines the restore mode */ + var $display_all_removed_objects= false; /* Specifies which objects will be listed, all + snapshots for a single entry or all snapshots + of already deleted objects */ + var $dialog= true; + var $del_dn= ""; var $ui; var $acl; + var $dns = array(); + var $snap_shot_bases = array(); + var $last_list = array(); + function SnapShotDialog($config,$dn,$parent) { - plugin::plugin($config,$dn); - $this->parent = $parent; - $this->ui = get_userinfo(); + plugin::plugin($config,$dn); + $this->parent = $parent; + $this->ui = get_userinfo(); } + + + /* Show deleted snapshots from these bases */ + function set_snapshot_bases($bases) + { + $this->snap_shot_bases = $bases; + } /* Display snapshot dialog */ @@ -28,7 +40,7 @@ class SnapShotDialog extends plugin { plugin::execute(); $smarty = get_smarty(); - + $once = true; foreach($_POST as $name => $value){ if((preg_match("/^RemoveSnapShot_/",$name)) && ($once)){ @@ -37,31 +49,27 @@ class SnapShotDialog extends plugin $entry = preg_replace("/^RemoveSnapShot_/","",$name); $entry = base64_decode(preg_replace("/_[xy]$/","",$entry)); - $acl = get_permissions ($entry, $this->ui->subtreeACL); - $this->acl = get_module_permission($acl, "snapshot", $entry ); - - if (chkacl($this->acl, "delete") == ""){ - $this->del_dn = $entry; - $smarty= get_smarty(); - $smarty->assign("intro", sprintf(_("You're about to delete the snapshot '%s'."), @LDAP::fix($this->del_dn))); - return($smarty->fetch (get_template_path('remove.tpl'))); - } else { - - /* Obviously the user isn't allowed to delete. Show message and - clean session. */ - print_red (_("You are not allowed to delete this snap shot!")); - } - } - } - - /* Remove snapshot */ - if(isset($_POST['delete_confirm']) && !empty($this->del_dn)){ - $acl = get_permissions ($this->del_dn, $this->ui->subtreeACL); - $this->acl = get_module_permission($acl, "snapshot", $this->del_dn); - if (chkacl($this->acl, "delete") == ""){ - $this->remove_snapshot($this->del_dn); - $this->del_dn = ""; - } + $found = false; + foreach($this->last_list as $t_stamp => $obj){ + if($obj['dn'] == $entry){ + $found = true; + break; + } + } + + if($found){ + $this->del_dn = $entry; + $smarty= get_smarty(); + $smarty->assign("intro", sprintf(_("You're about to delete the snapshot '%s'."), @LDAP::fix($this->del_dn))); + return($smarty->fetch (get_template_path('remove.tpl'))); + } + } + } + + /* Remove snapshot */ + if(isset($_POST['delete_confirm']) && !empty($this->del_dn)){ + $this->remove_snapshot($this->del_dn); + $this->del_dn = ""; } /* We must restore a snapshot */ @@ -70,14 +78,14 @@ class SnapShotDialog extends plugin /* Should we only display all snapshots of already deleted objects or the snapshots for the given object dn */ $res = array(); + $tmp = array(); if($this->display_all_removed_objects){ - if(is_array($this->dn)){ - $tmp = array(); - foreach($this->dn as $dn){ + if(count($this->snap_shot_bases)){ + foreach($this->snap_shot_bases as $dn){ $tmp = array_merge($tmp,$this->getAllDeletedSnapshots($dn,true)); } }else{ - $tmp = $this->getAllDeletedSnapshots($this->dn,true); + $tmp = $this->getAllDeletedSnapshots($this->snap_shot_bases,true); } }else{ $tmp = $this->Available_SnapsShots($this->dn,true); @@ -98,14 +106,15 @@ class SnapShotDialog extends plugin krsort($list_of_elements); /* Add Elements to divlist */ + $this->last_list = $list_of_elements; foreach($list_of_elements as $entry){ - $actions = " "; - $actions.= " "; + $actions.= " "; - $time_stamp = date("d.m.Y H.i.s",preg_replace("/\-.*$/","",$entry['gosaSnapshotTimestamp'][0])); + $time_stamp = date(_("Y-m-d, H:i:s"),preg_replace("/\-.*$/","",$entry['gosaSnapshotTimestamp'][0])); $display_data = $entry['description'][0]; if($this->display_all_removed_objects){ @@ -125,7 +134,7 @@ class SnapShotDialog extends plugin $smarty->assign("restore_deleted",$this->display_all_removed_objects); $smarty->assign("RestoreMode",$this->display_restore_dialog); - $smarty->assign("CurrentDate",date("d.m.Y H:i")); + $smarty->assign("CurrentDate",date(_("Y-m-d, H:i:s"))); $smarty->assign("CurrentDN",$this->dn); $smarty->assign("CurrentDescription",$this->CurrentDescription); return($smarty->fetch(get_template_path("snapshotdialog.tpl"))); @@ -155,4 +164,5 @@ class SnapShotDialog extends plugin } } +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>