Lines Matching refs:filter

68      * @var array filter patterns for listing users
365 * @param array $filter
368 protected function constructSearchString($filter)
370 if (!$filter) {
375 if (isset($filter['name'])) {
376 $result .= ')(displayname=*' . $adldapUtils->ldapSlashes($filter['name']) . '*';
377 unset($filter['name']);
380 if (isset($filter['user'])) {
381 $result .= ')(samAccountName=*' . $adldapUtils->ldapSlashes($filter['user']) . '*';
382 unset($filter['user']);
385 if (isset($filter['mail'])) {
386 $result .= ')(mail=*' . $adldapUtils->ldapSlashes($filter['mail']) . '*';
387 unset($filter['mail']);
393 * Return a count of the number of user which meet $filter criteria
395 * @param array $filter $filter array of field/pattern pairs, empty array for no filter
398 public function getUserCount($filter = [])
405 if ($filter == []) {
408 $searchString = $this->constructSearchString($filter);
410 if (isset($filter['grps'])) {
415 if (!isset($this->grpsusers[$this->filterToString($filter)])) {
416 $this->fillGroupUserArray($filter, $usermanager->getStart() + 3 * $usermanager->getPagesize());
418 count($this->grpsusers[$this->filterToString($filter)]) <
422 $filter,
425 count($this->grpsusers[$this->filterToString($filter)])
428 $result = $this->grpsusers[$this->filterToString($filter)];
444 * create a unique string for each filter used with a group
446 * @param array $filter
449 protected function filterToString($filter)
452 if (isset($filter['user'])) {
453 $result .= 'user-' . $filter['user'];
455 if (isset($filter['name'])) {
456 $result .= 'name-' . $filter['name'];
458 if (isset($filter['mail'])) {
459 $result .= 'mail-' . $filter['mail'];
461 if (isset($filter['grps'])) {
462 $result .= 'grps-' . $filter['grps'];
468 * Create an array of $numberOfAdds users passing a certain $filter, including belonging
472 * @param array $filter
476 protected function fillGroupUserArray($filter, $numberOfAdds)
478 if (isset($this->grpsusers[$this->filterToString($filter)])) {
479 $actualstart = count($this->grpsusers[$this->filterToString($filter)]);
481 $this->grpsusers[$this->filterToString($filter)] = [];
487 $this->constructPattern($filter);
495 if ($this->filter($user, $info)) {
496 $this->grpsusers[$this->filterToString($filter)][$user] = $info;
510 * @param array $filter array of field/pattern pairs, null for no filter
513 public function retrieveUsers($start = 0, $limit = 0, $filter = [])
520 $result = $adldap->user()->all(false, $this->constructSearchString($filter));
529 if (!isset($filter['grps'])) {
533 $this->constructPattern($filter);
549 !isset($this->grpsusers[$this->filterToString($filter)]) ||
550 count($this->grpsusers[$this->filterToString($filter)]) < ($start + $limit)
552 if (!isset($this->grpsusers[$this->filterToString($filter)])) {
553 $this->grpsusers[$this->filterToString($filter)] = [];
557 $filter,
558 $start + $limit - count($this->grpsusers[$this->filterToString($filter)]) + 1
561 if (!$this->grpsusers[$this->filterToString($filter)]) return [];
562 foreach ($this->grpsusers[$this->filterToString($filter)] as $user => &$info) {
776 protected function filter($user, $info)
795 * @param array $filter
797 protected function constructPattern($filter)
800 foreach ($filter as $item => $pattern) {