Code

Systems Workstation Startup
[gosa.git] / plugins / admin / systems / class_glpiPrinterAccount.inc
index 4ee03e31ab7069c4b318b61ca5d43537205b99e1..65f090b1146f89b15857334ae3709c1c6a293f0d 100644 (file)
@@ -2,11 +2,6 @@
 
 class glpiPrinterAccount extends plugin
 {
-  /* CLI vars */
-  var $cli_summary= "Manage server basic objects";
-  var $cli_description= "Some longer text\nfor help";
-  var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
   /* attribute list for save action */
   var $ignore_account= FALSE;
   var $attributes= array("ID","name","contact","ramSize","flags_serial","flags_par","flags_usb",
@@ -69,9 +64,9 @@ class glpiPrinterAccount extends plugin
   /* Contructor 
      Sets default values and checks if we already have an existing glpi account
    */
-  function glpiPrinterAccount ($config, $dn= NULL)
+  function glpiPrinterAccount ($config, $dn= NULL, $parent= NULL)
   {
-    plugin::plugin ($config, $dn);
+    plugin::plugin ($config, $dn, $parent);
     $this->ui= get_userinfo();
 
     $this->is_account = false;
@@ -191,9 +186,18 @@ class glpiPrinterAccount extends plugin
 
     /* Do we need to flip is_account state? */
     if (isset($_POST['modify_state'])){
-      $this->is_account= !$this->is_account;
+
+      /* Only change account state if allowed */
+      if($this->is_account && $this->acl == "#all#"){
+        $this->is_account= !$this->is_account;
+        $this->is_modified = true;
+      }elseif(!$this->is_account && chkacl($this->acl,"create") == ""){
+        $this->is_account= !$this->is_account;
+        $this->is_modified = true;
+      }
     }
 
+
     /* Show tab dialog headers */
     if ($this->is_account){
       $display= $this->show_header(_("Remove inventory"),
@@ -211,7 +215,7 @@ class glpiPrinterAccount extends plugin
      */
 
     /* Rename was requested */
-    if(isset($_POST['Rename_PType_OK'])){
+    if(isset($_POST['Rename_PType_OK']) && chkacl($this->acl,"type") == ""){
       $tmp = $this->handle->getPrinterTypes();
       $allok = true;
       foreach($tmp as $id => $name){
@@ -235,7 +239,7 @@ class glpiPrinterAccount extends plugin
 
     /* Printer type management
      */
-    if(isset($_POST['edit_type'])){
+    if(isset($_POST['edit_type']) && chkacl($this->acl,"type") == ""){
       $this->dialog = true;
       $this->edit_type=true;
     }
@@ -249,7 +253,7 @@ class glpiPrinterAccount extends plugin
 
     /* This appends a new printer to our sytem types
      */
-    if((isset($_POST['add_type']))&&(!empty($_POST['type_string']))){
+    if((isset($_POST['add_type']))&&(!empty($_POST['type_string'])) && chkacl($this->acl,"type") == ""){
     
       $tmp = $this->handle->getPrinterTypes();
       $allok = true;
@@ -267,7 +271,7 @@ class glpiPrinterAccount extends plugin
 
     /* Remove selected type from our printer types list
      */
-    if((isset($_POST['del_type']))&&(!empty($_POST['select_type']))){
+    if((isset($_POST['del_type']))&&(!empty($_POST['select_type'])) && chkacl($this->acl,"type") == ""){
       $tmp = $this->handle->is_printerTypeUsed($_POST['select_type']);
       if(count($tmp)){
         $str = "";
@@ -283,7 +287,7 @@ class glpiPrinterAccount extends plugin
 
     /* Rename selected printer type to given string
      */
-    if((isset($_POST['rename_type']))&&(!empty($_POST['select_type']))||($this->rename)){
+    if((isset($_POST['rename_type']))&&(!empty($_POST['select_type']))||($this->rename) && chkacl($this->acl,"type") == ""){
       $this->rename = true;
 
       $smarty->assign("Method","rename");
@@ -321,7 +325,7 @@ class glpiPrinterAccount extends plugin
 
     /* Open dialog which allows to edit the manufacturers
      */
-    if(isset($_POST['edit_manufacturer'])){
+    if(isset($_POST['edit_manufacturer']) && chkacl($this->acl,"manufacturer") == ""){
       $this->cur_dialog = new glpiManufacturer($this->config,$this->dn);
       $this->dialog = true;
       $this->editManufacturer =true;
@@ -329,7 +333,7 @@ class glpiPrinterAccount extends plugin
 
     /* Close manufacturer editing dialog
      */
-    if((isset($_POST['close_edit_manufacturer']))&&($this->editManufacturer)){
+    if((isset($_POST['close_edit_manufacturer']))&&($this->editManufacturer) && chkacl($this->acl,"manufacturer") == ""){
       $this->dialog = false;
       $this->cur_dialog = false;
       $this->editManufacturer=false;
@@ -345,14 +349,14 @@ class glpiPrinterAccount extends plugin
     /* Show dialog to select a new contact person
      * Select a contact person
      */
-    if(isset($_POST['SelectContactPerson'])){
+    if(isset($_POST['SelectContactPerson']) && chkacl($this->acl,"user_tech_num") == ""){
       $this->addUser = "contact";
       $this->cur_dialog= new glpiSelectUser($this->config,$this->dn,"user_tech_num");
     }
 
     /* Selecte technical responsible person
      */
-    if(isset($_POST['SelectTechPerson'])){
+    if(isset($_POST['SelectTechPerson']) && chkacl($this->acl,"user_tech_num") == ""){
       $this->addUser ="tech";
       $this->cur_dialog= new glpiSelectUser($this->config,$this->dn,"user_tech_num");
     }
@@ -367,7 +371,7 @@ class glpiPrinterAccount extends plugin
     }
 
     /* Technical responsible/contact person selected */
-    if(isset($_GET['act'])&&($_GET['act']=="user_tech_num")){
+    if(isset($_GET['act'])&&($_GET['act']=="user_tech_num") && chkacl($this->acl,"user_tech_num") == ""){
 
       /* Get posted id */
       $id = base64_decode($_GET['id']);
@@ -376,7 +380,8 @@ class glpiPrinterAccount extends plugin
       if(!in_array($id,$users)){
 
         /* If this user doesn't exists in glpi db, we must create him */
-        $atr = $ldap->fetch($ldap->cat($id));
+        $ldap->cat($id, array('cn', 'mail', 'telephoneNumber'));
+        $atr = $ldap->fetch();
         $tmp = array();
         $use = array( "cn"              =>"name",
             "mail"            =>"email",
@@ -417,7 +422,7 @@ class glpiPrinterAccount extends plugin
     
     /* Attachment pool was closed with use
      */
-    if(isset($_POST['UseAttachment'])){
+    if(isset($_POST['UseAttachment']) && chkacl($this->acl,"useAttachments") == ""){
       if(count($this->cur_dialog->check())){
         foreach($this->cur_dialog->check() as $msg){
           print_red($msg);
@@ -439,7 +444,7 @@ class glpiPrinterAccount extends plugin
 
     /* Open Attachment pool to add/edit Attachments
      */
-    if(isset($_POST['AddAttachment'])){
+    if(isset($_POST['AddAttachment']) && chkacl($this->acl,"useAttachments") == ""){
       $this->cur_dialog = new glpiAttachmentPool($this->config,$this->dn,$this->usedAttachments);
       $this->dialog = true;
     }
@@ -448,7 +453,7 @@ class glpiPrinterAccount extends plugin
      */
     $once = true;
     foreach($_POST as $name => $value){
-      if((preg_match("/^delAttachment_/",$name))&&($once)){
+      if((preg_match("/^delAttachment_/",$name))&&($once) && chkacl($this->acl,"useAttachments") == ""){
         $once= false;
         $name = preg_replace("/^delAttachment_/","",$name);
         $entry = preg_replace("/_.*$/","",$name);
@@ -457,7 +462,7 @@ class glpiPrinterAccount extends plugin
         }
       }
     }
-    if((isset($_POST['RemoveAttachment']))&&(isset($_POST['Attachments']))){
+    if((isset($_POST['RemoveAttachment']))&&(isset($_POST['Attachments'])) && chkacl($this->acl,"useAttachments") == ""){
       if(isset($this->usedAttachments[$_POST['Attachments']])){
         unset($this->usedAttachments[$_POST['Attachments']]);
       }
@@ -489,7 +494,7 @@ class glpiPrinterAccount extends plugin
 
     /* Remove cartridge  
      */
-    if((isset($_POST['RemoveCartridge']))&&(isset($_POST['Cartridges']))){
+    if((isset($_POST['RemoveCartridge']))&&(isset($_POST['Cartridges'])) && chkacl($this->acl,"cartridges") == ""){
 
       foreach($_POST['Cartridges'] as $cartID){
 
@@ -505,7 +510,7 @@ class glpiPrinterAccount extends plugin
 
     /* Open Attachment pool to add/edit Attachments
      */
-    if(isset($_POST['AddCartridge'])){
+    if(isset($_POST['AddCartridge']) && chkacl($this->acl,"cartridges") == ""){
       $this->cur_dialog = new glpiPrinterCartridges($this->config,$this->dn,$this->type);
       $this->dialog = true;
     }
@@ -599,7 +604,8 @@ class glpiPrinterAccount extends plugin
      *  Assign contact and technical responsible person 
      */
     if(isset($users[$this->contact_num])){
-      $tr = $ldap->fetch($ldap->cat($users[$this->contact_num]));
+      $ldap->cat($users[$this->contact_num], array('givenName', 'sn', 'uid'));
+      $tr = $ldap->fetch();
       $str = "";
       if(isset($tr['givenName'][0])){   $str .= $tr['givenName'][0]." ";      }
       if(isset($tr['sn'][0])) {         $str .= $tr['sn'][0]." ";             }
@@ -613,7 +619,8 @@ class glpiPrinterAccount extends plugin
        Assign name ... to smarty, if set
      */ 
     if(isset($users[$this->tech_num])){
-      $tr = $ldap->fetch($ldap->cat($users[$this->tech_num]));
+      $ldap->cat($users[$this->tech_num], array('givenName', 'sn', 'uid'));
+      $tr = $ldap->fetch();
       $str = "";
       if(isset($tr['givenName'][0])){   $str .= $tr['givenName'][0]." ";      }
       if(isset($tr['sn'][0])) {         $str .= $tr['sn'][0]." ";             }
@@ -654,17 +661,14 @@ class glpiPrinterAccount extends plugin
   {
     if(isset($_POST['glpiPrinterFlagsPosted'])){
       plugin::save_object();
-      foreach($this->attributes as $attrs){
-        if(isset($_POST[$attrs])){
-          $this->$attrs = $_POST[$attrs];
-        }
-      }
 
       foreach(array("flags_serial","flags_par","flags_usb") as $checkboxes){
-        if(isset($_POST[$checkboxes])){
-          $this->$checkboxes = 1;
-        }else{
-          $this->$checkboxes = 0;
+        if(chkacl($this->acl,$checkboxes) == ""){
+          if(isset($_POST[$checkboxes])){
+            $this->$checkboxes = 1;
+          }else{
+            $this->$checkboxes = 0;
+          }
         }
       }
     }