summaryrefslogtreecommitdiff
blob: 55c6594dbffdae861e923cf0f799b6e70d3adeee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class SearchController < ApplicationController
  def index
  end
  
  def results
    search = ThinkingSphinx.search(params[:q], :max_matches => 1000, :per_page => 1000)
    search.context[:panes] << ThinkingSphinx::Panes::ExcerptsPane

    @results = {}
    search.each do |result|
      klass = result.class.to_s
      @results[klass] = [] unless @results.include? klass
      @results[klass] << result
    end
    
    if @results.include? 'Revision'
      @results['Glsa'] = [] unless @results['Glsa']
      
      @results['Revision'].each do |rev|
        @results['Glsa'] << rev.glsa
      end
      
      @results['Glsa'].uniq!
    end

    # Filter search results
    if @results.include? 'Glsa'
      @results['Glsa'].delete_if do |result|
        not check_object_access(result)
      end
    end
  rescue Riddle::ConnectionError => e
    @error = true
  rescue Riddle::ResponseError => e
    @error = true
  end
end