Code

Added wildcard dummy to acl's
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 12 Feb 2010 12:48:36 +0000 (12:48 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 12 Feb 2010 12:48:36 +0000 (12:48 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15615 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-core/include/class_acl.inc
gosa-core/include/class_userinfo.inc

index 3e6099a7e9c16e9041daa9bf7067b6581ab11901..80d5481cd53fb08f40d38c8ab186c6cd7007fbcb 100644 (file)
@@ -979,24 +979,30 @@ class acl extends plugin
     /* Decode dn's, fill with informations from LDAP */
     $ldap= $config->get_ldap_link();
     foreach ($ma as $memberdn){
-      $dn= base64_decode($memberdn);
-      $ldap->cat($dn, array('cn', 'objectClass', 'description', 'uid'));
-
-      /* Found entry... */
-      if ($ldap->count()){
-        $attrs= $ldap->fetch();
-        if (in_array_ics('gosaAccount', $attrs['objectClass'])){
-          $a['U:'.$dn]= $attrs['cn'][0]." [".$attrs['uid'][0]."]";
-        } else {
-          $a['G:'.$dn]= $attrs['cn'][0];
-          if (isset($attrs['description'][0])){
-            $a['G:'.$dn].= " [".$attrs['description'][0]."]";
+      // Check for wildcard here
+      if ($memberdn != "*") {
+        $dn= base64_decode($memberdn);
+        $ldap->cat($dn, array('cn', 'objectClass', 'description', 'uid'));
+
+        /* Found entry... */
+        if ($ldap->count()){
+          $attrs= $ldap->fetch();
+          if (in_array_ics('gosaAccount', $attrs['objectClass'])){
+            $a['U:'.$dn]= $attrs['cn'][0]." [".$attrs['uid'][0]."]";
+          } else {
+            $a['G:'.$dn]= $attrs['cn'][0];
+            if (isset($attrs['description'][0])){
+              $a['G:'.$dn].= " [".$attrs['description'][0]."]";
+            }
           }
+
+        /* ... or not */
+        } else {
+          $a['U:'.$dn]= sprintf(_("Unknown entry '%s'!"), $dn);
         }
 
-      /* ... or not */
       } else {
-        $a['U:'.$dn]= sprintf(_("Unknown entry '%s'!"), $dn);
+        $a['*']= sprintf(_("Wildcard ACL"));
       }
     }
 
index 1d5cefee532f4bdd4f55b1cffee8623d8cd8442d..f972e99628a9f331570649c9b266154ccb9e046b 100644 (file)
@@ -175,6 +175,11 @@ class userinfo
             if (preg_replace('/^U:/', '', $grp) == $this->dn){
               $interresting= TRUE;
             }
+
+            /* Wildcard? */
+            if (preg_match('/^\*/',  $grp)){
+              $interresting= TRUE;
+            }
           }
         }