Code

Prepared class_acl.inc to use ACL checks.
[gosa.git] / gosa-core / include / class_userinfo.inc
index 0719927c152b6612030f4ea7fa4a3d14839fad84..5413cd00ab4c5784a61f26274dee4a6653fa83aa 100644 (file)
@@ -210,7 +210,7 @@ class userinfo
 
     /* Push cache answer? */
     $ACL_CACHE = &session::get('ACL_CACHE');
-    if (0 && isset($ACL_CACHE["$dn+$object+$attribute"])){
+    if (isset($ACL_CACHE["$dn+$object+$attribute"])){
 
       /* Remove write if needed */
       if ($skip_write){
@@ -259,31 +259,28 @@ class userinfo
             continue;
           }
 
-#         /* With user filter */
-#         $sdn = preg_replace("/^[^,]*+,/","",$dn);
-#         if (isset($subacl['filter']) && !empty($subacl['filter'])){
-#
-#           $ldap->cd($sdn);
-#           $ldap->ls($subacl['filter'],$sdn);
-#           if(!$ldap->count()){
-#             continue;
-#           }else{
-#             $found = FALSE; 
-#             while($attrs = $ldap->fetch()){
-#               echo $attrs['dn']."<br>";
-#               if($attrs['dn'] == $dn){
-#                 $found = TRUE;
-#                 echo $acl."<br>";;
-#                 break;
-#               }
-#             }
-#             if(!$found){
-#               continue;
-#             }
-#           }
-#         }
-
-         /* Per attribute ACL? */
+         /* With user filter */
+         if (isset($subacl['filter']) && !empty($subacl['filter'])){
+           $sdn = preg_replace("/^[^,]*+,/","",$dn);
+           $ldap->cd($sdn);
+           $ldap->ls($subacl['filter'],$sdn);
+           if(!$ldap->count()){
+             continue;
+           }else{
+             $found = FALSE; 
+             while($attrs = $ldap->fetch()){
+               if($attrs['dn'] == $dn){
+                 $found = TRUE;
+                 break;
+               }
+             }
+             if(!$found){
+               continue;
+             }
+           }
+         }
+
+          /* Per attribute ACL? */
           if (isset($subacl['acl'][$object][$attribute])){
             $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][$attribute]);
             continue;
@@ -316,7 +313,7 @@ class userinfo
     /* Assemble string */
     $ret= "";
     foreach ($acl as $key => $value){
-      if ($value != ""){
+      if ($value !== ""){
         $ret.= $key;
       }
     }