Code

Store currently selcted base in session
[gosa.git] / gosa-core / include / class_userinfo.inc
index 83db453bf1077cb01d7e8ff0379d8077ad3980f4..423694c8a7df021ab160120ec0dcd4ff85b21b9e 100644 (file)
@@ -284,6 +284,9 @@ class userinfo
         then return all permissions.
      */
     if($this->ignore_acl_for_current_user()){
+      if($skip_write){
+        return("rcdm");
+      }
       return("rwcdm");
     }
 
@@ -426,7 +429,7 @@ class userinfo
 
   /* Extract all departments that are accessible (direct or 'on the way' to an
      accessible department) */
-  function get_module_departments($module)
+  function get_module_departments($module, $skip_self_acls = FALSE )
   {
     
     /* If we are forced to skip ACLs checks for the current user 
@@ -474,6 +477,10 @@ class userinfo
       foreach($infos as $info){
         $found = FALSE;
         foreach($info['acl'] as $cat => $data){
+
+          /* Skip self acls? */
+          if($skip_self_acls && isset($data['0']) && preg_match("//s",$data['0'])) continue;
+
           if(is_array($module)){
             foreach($module as $mod){
               if(preg_match("/^".normalizePreg($mod)."/",$cat)){
@@ -637,7 +644,7 @@ class userinfo
    */ 
   function ignore_acl_for_current_user()
   {
-    return(isset($this->config->current['IGNORE_ACL']) && $this->config->current['IGNORE_ACL'] == $this->dn);
+    return($this->config->get_cfg_value("ignore_acl") == $this->dn);
   }
 
 }