Code

Updated Workstation acls
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 18 Sep 2006 10:58:14 +0000 (10:58 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 18 Sep 2006 10:58:14 +0000 (10:58 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4711 594d385d-05f5-0310-b6e9-bd551577e9d8

include/smarty/plugins/block.render.php
plugins/admin/systems/class_printGeneric.inc
plugins/admin/systems/class_workstationGeneric.inc
plugins/admin/systems/tabs_workstation.inc
plugins/admin/systems/workstation.tpl

index efca60e7d93bca406e8edbdab64e629333890c75..1f3dbf28559a35b338f63de1816cbc98e7d936ca 100755 (executable)
@@ -21,7 +21,7 @@ function smarty_block_render($params, $text, &$smarty)
        }
 
        /* Disable objects, but keep those active that have mode=read_active */
-       if(!(isset($params['mode']) && $params['mode']=='readable')){
+       if(!(isset($params['mode']) && $params['mode']=='read_active')){
 
                /* Disable options && greyout divlists */
 
index 1e107aa93a05a028649752b12e7ab86c8f38a0a9..0d4312b48f31b933e41f3758053444cf4c71721f 100644 (file)
@@ -835,7 +835,7 @@ class printgeneric extends plugin
           "plPriority"    => 0,
           "plSection"     => array("administration"),
           "plCategory"    => array("printer" => array("description"  => _("Printer"),
-                                                    "objectClass"  => "gotoPrinter")),
+                                                    "objectClass"  => "gotoPrinter"),"workstation"),
           "plProvidedAcls"=> array(
             "cn"                => _("Name"),
             "base"                => _("Base") ,         
index 4c25e5fb83cdf8aa8b02f8615208576279bbf30e..86e394bb88bef34fb4f58ab3b4d038b88b370646 100644 (file)
@@ -130,11 +130,15 @@ class workgeneric extends plugin
     plugin::execute();
 
     /* Do we need to flip is_account state? */
-    if (isset($_POST['modify_state'])){
-      $this->is_account= !$this->is_account;
+    if(isset($_POST['modify_state'])){
+      if($this->is_account && $this->acl_is_removeable()){
+        $this->is_account= FALSE;
+      }elseif(!$this->is_account && $this->acl_is_createable()){
+        $this->is_account= TRUE;
+      }
     }
 
-    if (isset($_POST['action'])){
+    if ((isset($_POST['action'])) && ($this->acl_is_writeable("FAIstate"))){
       $cmd= search_config($this->config->data['TABS'], "workgeneric", "ACTIONCMD");
       if ($cmd == ""){
         print_red(_("No ACTIONCMD definition found in your gosa.conf"));
@@ -188,7 +192,7 @@ class workgeneric extends plugin
     /* Base select dialog */
     $once = true;
     foreach($_POST as $name => $value){
-      if(preg_match("/^chooseBase/",$name) && $once){
+      if(preg_match("/^chooseBase/",$name) && $once && $this->acl_is_writeable("base")){
         $once = false;
         $this->dialog = new baseSelectDialog($this->config,$this);
         $this->dialog->setCurrentBase($this->base);
@@ -211,12 +215,12 @@ class workgeneric extends plugin
     }
 
     /* Add new ntp Server to our list */ 
-    if((isset($_POST['addNtpServer'])) && (isset($_POST['gotoNtpServers']))){
+    if((isset($_POST['addNtpServer'])) && (isset($_POST['gotoNtpServers'])) && $this->acl_is_writeable("gotoNtpServer")){
       $this->gotoNtpServer[$_POST['gotoNtpServers']] = $_POST['gotoNtpServers'];
     }
 
     /* Delete selected NtpServer for list of used servers  */
-    if((isset($_POST['delNtpServer'])) && (isset($_POST['gotoNtpServerSelected']))){
+    if((isset($_POST['delNtpServer'])) && (isset($_POST['gotoNtpServerSelected'])) && $this->acl_is_writeable("gotoNtpServer")){
       foreach($_POST['gotoNtpServerSelected'] as $name){
         unset($this->gotoNtpServer[$name]);
       }
index e7f7d0a3323f73a87c618387ff430a9383868360..d5bab394b9dd6344d78821bd6ef71a949d5113a5 100644 (file)
@@ -14,10 +14,12 @@ class worktabs extends tabs
         $this->by_name[$tab['CLASS']]= $tab['NAME'];
         $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config, $this->dn,$this);
         $this->by_object[$tab['CLASS']]->parent= &$this;
+        $this->by_object[$tab['CLASS']]->set_acl_category($category);
       }else{
         $this->by_name[$tab['CLASS']]= $tab['NAME'];
         $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config, $this->dn);
         $this->by_object[$tab['CLASS']]->parent= &$this;
+        $this->by_object[$tab['CLASS']]->set_acl_category($category);
       }
       /* Initialize current */
       if ($this->current == ""){
index 6167c98cbb7e270e93614b8e37068f0793d5a85f..317d7e219868e3c17dfc410941cf2a3b1020f364 100644 (file)
@@ -58,7 +58,7 @@
    <table width="100%">
     <tr>
      <td colspan="2">
-{render acl=gotoNtpServerACL}
+{render acl=$gotoNtpServerACL}
         <input type="checkbox" value="1" name="inheritTimeServer"
             {if $inheritTimeServer } checked {/if}
             onClick="javascript: