X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_plugin.inc;h=74b530e0a726e821d5b6c0415cf2ef26d0db648b;hb=bc3166052765d2a1031dda827ef6e903666e41b5;hp=0cabed07fa4c55900da79fd9fe53687ead199274;hpb=31bd0987a98b67ff4cf082c21d03df7958785711;p=gosa.git
diff --git a/gosa-core/include/class_plugin.inc b/gosa-core/include/class_plugin.inc
index 0cabed07f..74b530e0a 100644
--- a/gosa-core/include/class_plugin.inc
+++ b/gosa-core/include/class_plugin.inc
@@ -1503,9 +1503,12 @@ class plugin
}
- function showSnapshotDialog($base,$baseSuffixe)
+ function showSnapshotDialog($base,$baseSuffixe,&$parent)
{
$once = true;
+ $ui = get_userinfo();
+ $this->parent = $parent;
+
foreach($_POST as $name => $value){
/* Create a new snapshot, display a dialog */
@@ -1513,26 +1516,40 @@ class plugin
$once = false;
$entry = preg_replace("/^CreateSnapShotDialog_/","",$name);
$entry = base64_decode(preg_replace("/_[xy]$/","",$entry));
- $this->snapDialog = new SnapShotDialog($this->config,$entry,$this);
- }
+ if(!empty($entry) && $ui->allow_snapshot_create($entry,$this->parent->acl_module)){
+ $this->snapDialog = new SnapShotDialog($this->config,$entry,$this);
+ }else{
+ msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to create a snapshot for %s."),$entry),ERROR_DIALOG);
+ }
+ }
+
/* Restore a snapshot, display a dialog with all snapshots of the current object */
if(preg_match("/^RestoreSnapShotDialog_/",$name) && $once){
$once = false;
$entry = preg_replace("/^RestoreSnapShotDialog_/","",$name);
$entry = base64_decode(preg_replace("/_[xy]$/","",$entry));
- $this->snapDialog = new SnapShotDialog($this->config,$entry,$this);
- $this->snapDialog->display_restore_dialog = true;
+ if(!empty($entry) && $ui->allow_snapshot_restore($entry,$this->parent->acl_module)){
+ $this->snapDialog = new SnapShotDialog($this->config,$entry,$this);
+ $this->snapDialog->display_restore_dialog = true;
+ }else{
+ msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),ERROR_DIALOG);
+ }
}
/* Restore one of the already deleted objects */
if(((isset($_POST['menu_action']) && $_POST['menu_action'] == "RestoreDeletedSnapShot")
|| preg_match("/^RestoreDeletedSnapShot_/",$name)) && $once){
$once = false;
- $this->snapDialog = new SnapShotDialog($this->config,"",$this);
- $this->snapDialog->set_snapshot_bases($baseSuffixe);
- $this->snapDialog->display_restore_dialog = true;
- $this->snapDialog->display_all_removed_objects = true;
+
+ if($ui->allow_snapshot_restore($base,$this->parent->acl_module)){
+ $this->snapDialog = new SnapShotDialog($this->config,"",$this);
+ $this->snapDialog->set_snapshot_bases($baseSuffixe);
+ $this->snapDialog->display_restore_dialog = true;
+ $this->snapDialog->display_all_removed_objects = true;
+ }else{
+ msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$base),ERROR_DIALOG);
+ }
}
/* Restore selected snapshot */
@@ -1540,9 +1557,11 @@ class plugin
$once = false;
$entry = preg_replace("/^RestoreSnapShot_/","",$name);
$entry = base64_decode(trim(preg_replace("/_[xy]$/","",$entry)));
- if(!empty($entry)){
+ if(!empty($entry) && $ui->allow_snapshot_restore($entry,$this->parent->acl_module)){
$this->restore_snapshot($entry);
$this->snapDialog = NULL;
+ }else{
+ msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),ERROR_DIALOG);
}
}
}
@@ -1956,24 +1975,56 @@ class plugin
{
$str= "";
$ui = get_userinfo();
- if($this->snapshotEnabled() && $ui->allow_snapshot_create($base,$category)){
+ if($this->snapshotEnabled()){
+ if ($ui->allow_snapshot_restore($base,$category)){
- if(count($this->Available_SnapsShots($base))){
- $str.= " ";
- } else {
- $str = "
";
+ if(count($this->Available_SnapsShots($base))){
+ $str.= " ";
+ } else {
+ $str = "
";
+ }
+ }
+ if($ui->allow_snapshot_create($base,$category)){
+ $str.= " ";
+ }else{
+ $str = "
";
}
-
- $str.= " ";
}
return($str);
}
+ function get_copypaste_action($base,$category,$class,$copy = TRUE, $cut = TRUE)
+ {
+ $ui = get_userinfo();
+ $action = "";
+ if($this->CopyPasteHandler){
+ if($cut){
+ if($ui->is_cutable($base,$category,$class)){
+ $action .= " ";
+ }else{
+ $action.="
";
+ }
+ }
+ if($copy){
+ if($ui->is_copyable($base,$category,$class)){
+ $action.= " ";
+ }else{
+ $action.="
";
+ }
+ }
+ }
+
+ return($action);
+ }
+
+
function get_copypaste_header($base,$category,$copy = TRUE, $cut = TRUE)
{
$s = "";
@@ -2019,12 +2070,6 @@ class plugin
}
- function get_copypaste_action($base,$category,$class)
- {
-
- }
-
-
function get_used_snapshot_bases()
{
return(array());