Code

Fixed multi query editor
[gosa.git] / gosa-core / include / class_userinfo.inc
index 06a9648d1782d875d72483966014d5fc683af4be..4ac5ea37c9167bed0153341ac223e11577f85712 100644 (file)
@@ -175,6 +175,11 @@ class userinfo
             if (preg_replace('/^U:/', '', $grp) == $this->dn){
               $interresting= TRUE;
             }
+
+            /* Wildcard? */
+            if (preg_match('/^G:\*/',  $grp)){
+              $interresting= TRUE;
+            }
           }
         }
 
@@ -253,7 +258,7 @@ class userinfo
 
   function get_category_permissions($dn, $category, $any_acl = FALSE)
   {
-    return(@$this->get_permissions($dn,$category.'/0',""));
+    return($this->get_permissions($dn,$category.'/0',""));
   }
 
   
@@ -354,6 +359,20 @@ class userinfo
       return($ret);
     }
 
+    /* Check for correct category and class values... */
+    if(strpos($object,'/') !== FALSE){
+      list($aclCategory, $aclClass) = split("/", $object);
+    }else{
+      $aclCategory = $object;
+    }
+    if(!isset($this->ocMapping[$aclCategory])){
+      trigger_error("Invalid ACL category '".$aclCategory."'! ({$object})");
+      return("");
+    }elseif(isset($aclClass) && !in_array($aclClass, $this->ocMapping[$aclCategory])){
+      trigger_error("Invalid ACL class '".$aclClass."'! ({$object})");
+      return("");
+    }
+
     /* Detect the set of ACLs we have to check for this object 
      */
     $adn = $dn;
@@ -392,7 +411,7 @@ class userinfo
     $acl= array("r" => "", "w" => "", "c" => "", "d" => "", "m" => "", "a" => "");
 
     /* Build dn array */
-    $path= split(',', $dn);
+    $path= explode(',', $dn);
     $path= array_reverse($path);
 
     /* Walk along the path to evaluate the acl */