summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5897d6e)
raw | patch | inline | side by side (parent: 5897d6e)
author | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 5 Nov 2009 11:21:45 +0000 (11:21 +0000) | ||
committer | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 5 Nov 2009 11:21:45 +0000 (11:21 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@14757 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/include/class_filter.inc | patch | blob | history | |
gosa-core/include/class_filterGroupLDAP.inc | [new file with mode: 0644] | patch | blob |
index 365f9da631389b3ba0c44c0e4b343109c26db419..64cfded3d8a600559b97bcd076b296cd3ed418fa 100644 (file)
}
// Make filter
- $filter= preg_replace("/\\$$tag/", normalizeLDAP($value), $filter);
+ $filter= preg_replace("/\\$$tag/", normalizeLdap($value), $filter);
if (isset($config['base']) && isset($config['scope']) && isset($config['category'])) {
$result= call_user_func(array($backend, 'query'), $config['base'], $config['scope'], $filter, $attributes,
$config["category"], $config["objectStorage"]);
diff --git a/gosa-core/include/class_filterGroupLDAP.inc b/gosa-core/include/class_filterGroupLDAP.inc
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+
+class filterGroupLDAP {
+
+ static function query($base, $scope, $filter, $attributes, $category, $objectStorage= "")
+ {
+ $result= array();
+ $menu= array();
+ $dn2index= array();
+ $config= session::global_get('config');
+ $ldap= $config->get_ldap_link(TRUE);
+ $flag= ($scope == "sub")?GL_SUBSEARCH:0;
+ $tmp= filterGroupLDAP::get_list($base, $filter, $attributes, $category, $objectStorage, $flag | GL_SIZELIMIT);
+
+ // Sort out menu entries, but save info
+ $index= 0;
+ foreach ($tmp as $entry) {
+ if (in_array_ics("posixGroup", $entry['objectClass'])) {
+ $result[$index]= $entry;
+ $dn2index[$entry['dn']]= $index;
+ $index++;
+ } else {
+ foreach ($objectStorage as $storage) {
+ $group= preg_replace("/^.*,([^,]+),".preg_quote("$storage$base")."$/", '$1', $entry['dn']);
+ $group= "$group,$storage$base";
+
+ // The current group implementation has no multiple storage settings - so break here
+ break;
+ }
+ $menu[$group]= true;
+ }
+ }
+
+ // Move menu information to menu
+ foreach ($menu as $dn => $dummy) {
+ $result[$dn2index[$dn]]["objectClass"][]= "gotoMenuGroup";
+ }
+
+ return $result;
+ }
+
+
+ static function get_list($base, $filter, $attributes, $category, $objectStorage, $flags= GL_SUBSEARCH)
+ {
+ $filter= "(|(|(objectClass=gotoMenuEntry)(objectClass=gotoSubmenuEntry))$filter)";
+ return filterLDAP::get_list($base, $filter, $attributes, $category, $objectStorage, $flags);
+ }
+
+
+}
+
+?>