X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_acl.inc;h=c79a7f2876dd4fa1344e67d1abbfa47127236b95;hb=534bedd511854e012e6453f3c1a97e947fdbd139;hp=ce577b39d0d2bc1f573b3dde8a24477d11333fb7;hpb=aa89f24a74bb13b3739abde5b0b4d31534172b75;p=gosa.git diff --git a/gosa-core/include/class_acl.inc b/gosa-core/include/class_acl.inc index ce577b39d..c79a7f287 100644 --- a/gosa-core/include/class_acl.inc +++ b/gosa-core/include/class_acl.inc @@ -20,6 +20,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/*! \brief ACL management plugin */ class acl extends plugin { /* Definitions */ @@ -116,6 +117,7 @@ class acl extends plugin } $this->groups['G:'.$attrs['dn']]= $attrs['cn'][0].' ['.$dsc.']'; } + $this->groups['G:*']= _("All users"); ksort($this->groups); /* Roles */ @@ -270,17 +272,17 @@ class acl extends plugin foreach($_POST as $name => $post){ /* Actions... */ - if (preg_match('/^acl_edit_.*_x/', $name)){ + if (preg_match('/^acl_edit_[0-9]*$/', $name)){ $this->dialogState= 'create'; $firstedit= TRUE; $this->dialog= TRUE; - $this->currentIndex= preg_replace('/^acl_edit_([0-9]+).*$/', '\1', $name); + $this->currentIndex= preg_replace('/^acl_edit_([0-9]*)$/', '\1', $name); $this->loadAclEntry(); continue; } - if (preg_match('/^cat_edit_.*_x/', $name)){ - $this->aclObject= preg_replace('/^cat_edit_([^_]+)_.*$/', '\1', $name); + if (preg_match('/^cat_edit_.*$/', $name)){ + $this->aclObject= preg_replace('/^cat_edit_(.*)$/', '\1', $name); $this->dialogState= 'edit'; foreach ($this->ocMapping[$this->aclObject] as $oc){ if (isset($this->aclContents[$oc])){ @@ -295,22 +297,25 @@ class acl extends plugin continue; } - if (preg_match('/^acl_del_.*_x/', $name)){ - unset($this->gosaAclEntry[preg_replace('/^acl_del_([0-9]+).*$/', '\1', $name)]); + if (preg_match('/^acl_del_[0-9]*$/', $name)){ + unset($this->gosaAclEntry[preg_replace('/^acl_del_([0-9]*)$/', '\1', $name)]); continue; } - if (preg_match('/^cat_del_.*_x/', $name)){ - $idx= preg_replace('/^cat_del_([^_]+)_.*$/', '\1', $name); + if (preg_match('/^cat_del_.*$/', $name)){ + $idx= preg_replace('/^cat_del_(.*)$/', '\1', $name); foreach ($this->ocMapping[$idx] as $key){ - unset($this->aclContents["$idx/$key"]); + if(isset($this->aclContents[$idx])) + unset($this->aclContents[$idx]); + if(isset($this->aclContents["$idx/$key"])) + unset($this->aclContents["$idx/$key"]); } continue; } /* Sorting... */ - if (preg_match('/^sortup_.*_x/', $name)){ - $index= preg_replace('/^sortup_([0-9]+).*$/', '\1', $name); + if (preg_match('/^sortup_[0-9]*$/', $name)){ + $index= preg_replace('/^sortup_([0-9]*)$/', '\1', $name); if ($index > 0){ $tmp= $this->gosaAclEntry[$index]; $this->gosaAclEntry[$index]= $this->gosaAclEntry[$index-1]; @@ -318,8 +323,8 @@ class acl extends plugin } continue; } - if (preg_match('/^sortdown_.*_x/', $name)){ - $index= preg_replace('/^sortdown_([0-9]+).*$/', '\1', $name); + if (preg_match('/^sortdown_[0-9]*$/', $name)){ + $index= preg_replace('/^sortdown_([0-9]*)$/', '\1', $name); if ($index < count($this->gosaAclEntry)-1){ $tmp= $this->gosaAclEntry[$index]; $this->gosaAclEntry[$index]= $this->gosaAclEntry[$index+1]; @@ -330,7 +335,7 @@ class acl extends plugin /* ACL saving... */ if (preg_match('/^acl_.*_[^xy]$/', $name)){ - list($dummy, $object, $attribute, $value)= split('_', $name); + list($dummy, $object, $attribute, $value)= explode('_', $name); /* Skip for detection entry */ if ($object == 'dummy') { @@ -348,7 +353,8 @@ class acl extends plugin } } - if(isset($_POST['selected_role'])){ + // Remember the selected ACL role. + if(isset($_POST['selected_role']) && $_POST['aclType'] == 'role'){ $this->aclContents = ""; $this->aclContents = base64_decode($_POST['selected_role']); } @@ -489,19 +495,15 @@ class acl extends plugin $field2= array("string" => $link); if($this->acl_is_writeable("")){ - $action.= ""; - $action.= ""; + $action.= image('images/lists/sort-up.png', 'sortup_'.$key); + $action.= image('images/lists/sort-down.png', 'sortdown_'.$key); } if($this->acl_is_readable("")){ - $action.= ""; + $action.= image('images/lists/edit.png','acl_edit_'.$key,msgPool::editButton(_("ACL"))); } if($this->acl_is_removeable("")){ - $action.= ""; + $action.= image('images/lists/trash.png','acl_del_'.$key,msgPool::delButton(_("ACL"))); } $field3= array("string" => $action, "attach" => "style='border-right:0px;width:50px;text-align:right;'"); @@ -544,12 +546,10 @@ class acl extends plugin $actions =""; if($this->acl_is_readable("")){ - $actions= ""; + $actions.= image('images/lists/edit.png','cat_edit_'.$section, msgPool::editButton(_("category ACL"))); } if($this->acl_is_removeable()){ - $actions.= ""; + $actions.= image('images/lists/trash.png','cat_del_'.$section, msgPool::delButton(_("category ACL"))); } $field1= array("string" => $dsc, "attach" => "style='width:100px'"); @@ -574,6 +574,9 @@ class acl extends plugin /* Generate list */ $tmp= array(); + if ($this->target == "group" && !isset($this->recipients["G:*"])){ + $tmp["G:*"]= _("All users"); + } foreach (array("user" => "users", "group" => "groups") as $field => $arr){ if ($this->target == $field){ foreach ($this->$arr as $key => $value){ @@ -700,33 +703,33 @@ class acl extends plugin $style = "style='width:100px;'"; if($this->acl_is_writeable("")){ - $display .= ""; - $display .= ""; - $display .= " - "; - $display .= ""; - $display .= " - "; + $display .= ""; + $display .= ""; + $display .= " - "; + $display .= ""; + $display .= " - "; - $display .= ""; - $display .= ""; + $display .= ""; + $display .= ""; $display .= "
"; $style = "style='width:50px;'"; - $display .= ""; - $display .= ""; - $display .= ""; - $display .= ""; - $display .= ""; - $display .= " - "; - $display .= ""; - $display .= ""; - $display .= ""; - $display .= " - "; - - $display .= ""; - $display .= ""; - $display .= ""; - $display .= ""; + $display .= ""; + $display .= ""; + $display .= ""; + $display .= ""; + $display .= ""; + $display .= " - "; + $display .= ""; + $display .= ""; + $display .= ""; + $display .= " - "; + + $display .= ""; + $display .= ""; + $display .= ""; + $display .= ""; } /* Build general objects */ @@ -762,34 +765,27 @@ class acl extends plugin $back_color = "#C8C8C8"; } - if(session::global_get('js')) { - if(isset($_SERVER['HTTP_USER_AGENT']) && - (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || - (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) { - $display.= "\n". - "\n ". - "\n ". - "\n ". - "\n "; - } else if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT'])) { - $display.= "\n
"._("Object").": $name". - "\n
". - "\n ". - "\n ". - "\n ". - "\n "; - } else { - $display.= "\n
"._("Object").": $name". - "\n
". - "\n ". - "\n ". - "\n "; - } + if(isset($_SERVER['HTTP_USER_AGENT']) && + (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || + (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) { + $display.= "\n
"._("Object").": $name
". + "\n ". + "\n ". + "\n ". + "\n "; + } else if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT'])) { + $display.= "\n
"._("Object").": $name". + "\n
". + "\n ". + "\n ". + "\n ". + "\n "; } else { - $display.= "\n
"._("Object").": $name". + "\n
". - "\n ". - "\n ". - "\n "; + $display.= "\n
"._("Object").": $name
". + "\n ". + "\n ". + "\n "; } /* Generate options */ @@ -818,13 +814,13 @@ class acl extends plugin (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) { $display.= "\n ". "\n
"._("Object").": $name
". - "\n