Code

Updated filter automatic indent
[gosa.git] / gosa-core / include / class_userinfo.inc
index ac194684bb0de7e588a47837541eec31ea7cf402..4ac5ea37c9167bed0153341ac223e11577f85712 100644 (file)
@@ -43,7 +43,7 @@ class userinfo
 
   /* get acl's an put them into the userinfo object
      attr subtreeACL (userdn:components, userdn:component1#sub1#sub2,component2,...) */
-  function __construct(&$config, $userdn){
+  function userinfo(&$config, $userdn){
     $this->config= &$config;
     $ldap= $this->config->get_ldap_link();
     $ldap->cat($userdn,array('sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage', 'gosaUnitTag', 'gosaLoginRestriction'));
@@ -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;