From 85fa2b8bf0dc10c18a8cf2844d478c7156735f55 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Wed, 26 Feb 2014 20:45:11 +0000 Subject: [PATCH] use type filters when searching for groups (bug 165) --- lam/lib/modules/posixGroup.inc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lam/lib/modules/posixGroup.inc b/lam/lib/modules/posixGroup.inc index 4c0d6a27..13c9d189 100644 --- a/lam/lib/modules/posixGroup.inc +++ b/lam/lib/modules/posixGroup.inc @@ -1052,7 +1052,16 @@ class posixGroup extends baseModule implements passwordService { if ($this->cachedUserToGIDList != null) { return $this->cachedUserToGIDList; } - $result = searchLDAPByAttribute('gidNumber', '*', 'posixAccount', array('uid', 'gidNumber', 'cn'), array('user')); + $typeSettings = $_SESSION['config']->get_typeSettings(); + $filter = '(&(objectClass=posixAccount)(gidNumber=*))'; + if (!empty($typeSettings['filter_user'])) { + $typeFilter = $typeSettings['filter_user']; + if (strpos($typeFilter, '(') !== 0) { + $typeFilter = '(' . $typeFilter . ')'; + } + $filter = '(&' . $filter . $typeFilter . ')'; + } + $result = searchLDAPByFilter($filter, array('uid', 'gidNumber', 'cn'), array('user')); $this->cachedUserToGIDList = array(); $resultCount = sizeof($result); for ($i = 0; $i < $resultCount; $i++) {