protected function filterQueryWithPermissions(array &$query, User $user) { $ugroup_literalizer = new UGroupLiteralizer(); $filtered_query = array('filtered' => array('query' => $query['query'], 'filter' => array('terms' => array('permissions' => $ugroup_literalizer->getUserGroupsForUserWithArobase($user))))); $query['query'] = $filtered_query; }
protected function filterQueryWithPermissions(array &$query, PFUser $user, $terms, $facets) { $ugroup_literalizer = new UGroupLiteralizer(); $ugroups = $ugroup_literalizer->getUserGroupsForUserWithArobase($user); $types = $this->getTypesForFacets($facets); $document_types = array(ElasticSearch_SearchResultWiki::TYPE_IDENTIFIER, ElasticSearch_SearchResultDocman::TYPE_IDENTIFIER); $tracker_types = array(ElasticSearch_SearchResultTracker::TYPE_IDENTIFIER); if (array_intersect($types, $tracker_types) && array_intersect($types, $document_types)) { $query_part = array('bool' => array('should' => array($this->getDocumentQueryPart($terms, $ugroups), $this->getTrackerQueryPart($user, $terms, $ugroups, $facets)))); } elseif (array_intersect($types, $document_types)) { $query_part = $this->getDocumentQueryPart($terms, $ugroups); } elseif (array_intersect($types, $tracker_types)) { $query_part = $this->getTrackerQueryPart($user, $terms, $ugroups, $facets); } $query['query'] = $query_part; }