index 34967053c52776f40c16b815cc06837ba808542e..00e1f870d53a952be0c7e13b33dd28575c79aabf 100755 (executable)
var $del_dn= "";
var $ui;
var $acl;
var $del_dn= "";
var $ui;
var $acl;
+ var $dns = array();
+ var $snap_shot_bases = array();
+ var $last_list = array();
+
- function SnapShotDialog($config,$dn,$parent)
+ 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 */
/* Display snapshot dialog */
{
plugin::execute();
$smarty = get_smarty();
{
plugin::execute();
$smarty = get_smarty();
-
+
$once = true;
foreach($_POST as $name => $value){
if((preg_match("/^RemoveSnapShot_/",$name)) && ($once)){
$once = true;
foreach($_POST as $name => $value){
if((preg_match("/^RemoveSnapShot_/",$name)) && ($once)){
$entry = preg_replace("/^RemoveSnapShot_/","",$name);
$entry = base64_decode(preg_replace("/_[xy]$/","",$entry));
$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 */
}
/* We must restore a snapshot */
/* Should we only display all snapshots of already deleted objects
or the snapshots for the given object dn */
$res = array();
/* 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($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 = 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);
}
}
}else{
$tmp = $this->Available_SnapsShots($this->dn,true);
}
- $DivListSnapShots = new DivSelectBox("SnapShotRestore");
+ $DivListSnapShots = new divSelectBox("SnapShotRestore");
$DivListSnapShots->SetHeight(180);
$list_of_elements = array();
$DivListSnapShots->SetHeight(180);
$list_of_elements = array();
krsort($list_of_elements);
/* Add Elements to divlist */
krsort($list_of_elements);
/* Add Elements to divlist */
+ $this->last_list = $list_of_elements;
foreach($list_of_elements as $entry){
$actions= "<input type='image' src='images/restore.png' name='RestoreSnapShot_%KEY'
foreach($list_of_elements as $entry){
$actions= "<input type='image' src='images/restore.png' name='RestoreSnapShot_%KEY'