andWhere() public method

Adds additional operators or equality comparisons to the 'and' statement.
See also: where
public andWhere ( $whereStatements )
$whereStatements Either a key => value array or an Operator type objects.
 /**
  * Make sure that the group exists and that the user is already a member of it. If not, at least give an informative
  * message.
  *
  * @param string $name The group name.
  * @return string The text SID of the group.
  * @throws AttributeConverterException
  */
 protected function validateAndGetGroupSID($name)
 {
     $query = new LdapQueryBuilder($this->getLdapConnection());
     $query->select('objectSid')->where(['objectClass' => 'group', 'cn' => $name]);
     // Only validate group group membership on modification.
     if ($this->getOperationType() == AttributeConverterInterface::TYPE_MODIFY) {
         $query->andWhere(['member' => $this->getDn()]);
     }
     try {
         return $query->andWhere($query->filter()->bitwiseAnd('groupType', GroupTypeFlags::SECURITY_ENABLED))->getLdapQuery()->getSingleScalarResult();
     } catch (EmptyResultException $e) {
         throw new AttributeConverterException(sprintf('Either the group "%s" doesn\'t exist, the user with DN "%s" is not a member of the group, the group' . ' is not a security group, or this group is already their primary group.', $name, $this->getDn()));
     }
 }
Example #2
0
 /**
  * Builds the part the of the query with the specific object class/value to search on.
  *
  * @param array $filter
  * @param bool $isOrFilter
  * @param string $toSelect
  * @return LdapQueryBuilder
  */
 protected function buildLdapQuery(array $filter, $isOrFilter, $toSelect)
 {
     $query = new LdapQueryBuilder($this->connection);
     $query->select($toSelect);
     $statement = $isOrFilter ? $query->filter()->bOr() : $query->filter()->bAnd();
     foreach ($filter as $attribute => $values) {
         $values = is_array($values) ? $values : [$values];
         foreach ($values as $value) {
             $statement->add($query->filter()->eq($attribute, $value));
         }
     }
     return $query->andWhere($statement);
 }