From 15938c39457a410f32f98d7c965b7791a09a3b51 Mon Sep 17 00:00:00 2001 From: psc Date: Fri, 20 Mar 2009 15:25:45 +0000 Subject: [PATCH] Partially revert commit 12758, because ACL evaluation does not work properly when creating new printer objects (Trac #2246) git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.6-lhm@13556 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../systems/ppd/class_printerPPDDialog.inc | 52 ++++++------------- .../admin/systems/ppd/printerPPDDialog.tpl | 8 --- 2 files changed, 17 insertions(+), 43 deletions(-) diff --git a/trunk/gosa-plugins/goto/admin/systems/ppd/class_printerPPDDialog.inc b/trunk/gosa-plugins/goto/admin/systems/ppd/class_printerPPDDialog.inc index 149dc8608..85e23f1e4 100644 --- a/trunk/gosa-plugins/goto/admin/systems/ppd/class_printerPPDDialog.inc +++ b/trunk/gosa-plugins/goto/admin/systems/ppd/class_printerPPDDialog.inc @@ -20,7 +20,6 @@ class printerPPDDialog extends plugin /* Object Info */ var $cn = "" ; // Used to tag the ppds modified by the printer object, - var $ui; /* If there is already a ppd file for the same type of printer, * remember the path to ppd file and display a dialog which allows @@ -34,8 +33,6 @@ class printerPPDDialog extends plugin plugin::plugin ($config, $dn); $this->depselect = $this->config->current['BASE']; - $this->ui = get_userinfo(); - /* Get PPD path and remove double //, and add trailing / */ $config = session::get('config'); if($config->get_cfg_value("ppdPath") != ""){ @@ -96,9 +93,6 @@ class printerPPDDialog extends plugin $smarty->assign("ppdString", _("Can't get ppd informations.")); $smarty->assign("showOptions", ""); $smarty->assign("path_valid", TRUE); - $smarty->assign("acl",$this->ui->get_permissions($this->dn,"printer/printgeneric","gotoPrinterPPD")); - - $acl = $this->ui->get_permissions($this->dn,"printer/printgeneric","gotoPrinterPPD"); if(empty($this->pathToPPD)){ @@ -113,12 +107,11 @@ class printerPPDDialog extends plugin /* If one of our required paths is not available, stop here and display some info */ foreach($paths as $path){ - + /* Check if path is write/readable*/ $is_r = @is_readable($path); if(((!is_dir($path))||(empty($path)) || (!$is_r)) && (!@mkdir($path))){ - msg_dialog::display(_("Configuration error"), - sprintf(_("Cannot open PPD path '%s' for reading and writing!"), $path), ERROR_DIALOG); + msg_dialog::display(_("Configuration error"), sprintf(_("Cannot open PPD path '%s' for reading and writing!"), $path), ERROR_DIALOG); /* Print out template */ $display.= $smarty->fetch(get_template_path('printerPPDDialog.tpl', TRUE,dirname(__FILE__))); @@ -129,16 +122,14 @@ class printerPPDDialog extends plugin // PPD selection / upload / dialog handling /* Is there a new PPD file uploaded ? */ - if(preg_match("/w/",$acl)){ - if((isset($_FILES['NewPPDFile']))&&(isset($_POST['SubmitNewPPDFile']))){ - $file = ($_FILES['NewPPDFile']); - if($file['size'] != 0 ){ - if($name = $this->AddPPD($file['tmp_name'])){ - $this->SelectPPD($name); - } - }else{ - msg_dialog::display(_("PPD error"), msgPool::incorrectUpload(_("file is empty")), ERROR_DIALOG); + if((isset($_FILES['NewPPDFile']))&&(isset($_POST['SubmitNewPPDFile']))){ + $file = ($_FILES['NewPPDFile']); + if($file['size'] != 0 ){ + if($name = $this->AddPPD($file['tmp_name'])){ + $this->SelectPPD($name); } + }else{ + msg_dialog::display(_("PPD error"), msgPool::incorrectUpload(_("file is empty")), ERROR_DIALOG); } } @@ -152,10 +143,8 @@ class printerPPDDialog extends plugin } /* Open a dialog that allow us to select different PPDs */ - if(preg_match("/w/",$acl)){ - if(isset($_POST['SelectPPD'])){ - $this->dialog= new printerPPDSelectionDialog($this->config,$this->dn,$this->ppdList,$this->ppdListHeader,$this->selectedPPD); - } + if(isset($_POST['SelectPPD'])){ + $this->dialog= new printerPPDSelectionDialog($this->config,$this->dn,$this->ppdList,$this->ppdListHeader,$this->selectedPPD); } /* The selection dialog fpr PPDs is canceled */ @@ -389,12 +378,10 @@ class printerPPDDialog extends plugin return; } - if(preg_match("/w/",$this->ui->get_permissions($this->dn,"printer/printgeneric","gotoPrinterPPD"))){ - foreach($this->ppdConfig as $cat => $obj){ - foreach($obj as $attr => $attributes){ - if(isset($_POST[base64_encode($attributes['_name'])])){ - $this->ppdConfig[$cat][$attr]['_default'] = $_POST[base64_encode($attributes['_name'])]; - } + foreach($this->ppdConfig as $cat => $obj){ + foreach($obj as $attr => $attributes){ + if(isset($_POST[base64_encode($attributes['_name'])])){ + $this->ppdConfig[$cat][$attr]['_default'] = $_POST[base64_encode($attributes['_name'])]; } } } @@ -492,11 +479,6 @@ class printerPPDDialog extends plugin } } - $acl =""; - if(!preg_match("/w/",$this->ui->get_permissions($this->dn,"printer/printgeneric","gotoPrinterPPD"))){ - $acl = "disabled"; - } - /* preparing Html output * Supported types are PickOne/Boolean */ @@ -504,7 +486,7 @@ class printerPPDDialog extends plugin /* If type is PickOne, create a select box */ if(($type == "PickOne")||(($type=="Boolean")&&(count($values)>1))){ - $str .= "\n"; foreach($values as $optionKey => $value){ $selected = ""; if($optionKey == $default){ @@ -517,7 +499,7 @@ class printerPPDDialog extends plugin }elseif($type == "Boolean"){ /* If type is Boolean & no values are given */ - $str .= "\n"; if($default == "False"){ $str .= "\n"; $str .= "\n"; diff --git a/trunk/gosa-plugins/goto/admin/systems/ppd/printerPPDDialog.tpl b/trunk/gosa-plugins/goto/admin/systems/ppd/printerPPDDialog.tpl index e1845673d..8cafc3b26 100644 --- a/trunk/gosa-plugins/goto/admin/systems/ppd/printerPPDDialog.tpl +++ b/trunk/gosa-plugins/goto/admin/systems/ppd/printerPPDDialog.tpl @@ -8,18 +8,12 @@ {t}Model{/t}: {$ppdString}  - {render acl=$acl} - {/render} {t}New driver{/t}  - {render acl=$acl} - {/render} - {render acl=$acl} - {/render} @@ -32,9 +26,7 @@

{if $path_valid} - {render acl=$acl} - {/render} {/if}

-- 2.30.2