QueryController.php in Lightweight Directory Access Protocol (LDAP) 8.3
File
ldap_query/src/Controller/QueryController.php
View source
<?php
namespace Drupal\ldap_query\Controller;
use Drupal\ldap_query\Entity\QueryEntity;
use Drupal\ldap_servers\Entity\Server;
class QueryController {
private $results = [];
private $qid;
private $query;
public function __construct($id) {
$this->qid = $id;
$this->query = QueryEntity::load($this->qid);
}
public function getFilter() {
return $this->query
->get('filter');
}
public function execute($filter = NULL) {
$count = 0;
if ($this->query) {
$ldap_server = Server::load($this->query
->get('server_id'));
$ldap_server
->connectAndBindIfNotAlready();
if ($filter == NULL) {
$filter = $this->query
->get('filter');
}
foreach ($this->query
->getProcessedBaseDns() as $base_dn) {
$result = $ldap_server
->search($base_dn, $filter, $this->query
->getProcessedAttributes(), 0, $this->query
->get('size_limit'), $this->query
->get('time_limit'), $this->query
->get('dereference'), $this->query
->get('scope'));
if ($result !== FALSE && $result['count'] > 0) {
$count = $count + $result['count'];
$this->results = array_merge($this->results, $result);
}
}
$this->results['count'] = $count;
}
else {
\Drupal::logger('ldap_query')
->warning('Could not load query @query', [
'@query' => $this->qid,
]);
}
}
public function getRawResults() {
return $this->results;
}
public function availableFields() {
$attributes = [];
foreach ($this->results as $result) {
if (is_array($result)) {
foreach ($result as $k => $v) {
if (is_numeric($k)) {
$attributes[$v] = $v;
}
}
}
}
return $attributes;
}
public static function getAllQueries() {
$query = \Drupal::entityQuery('ldap_query_entity');
$ids = $query
->execute();
return QueryEntity::loadMultiple($ids);
}
public static function getAllEnabledQueries() {
$query = \Drupal::entityQuery('ldap_query_entity')
->condition('status', 1);
$ids = $query
->execute();
return QueryEntity::loadMultiple($ids);
}
}
Classes
Name |
Description |
QueryController |
Controller class for LDAP queries, in assistance to the entity itself. |