Пример #1
0
 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;
 }