diff options
| -rw-r--r-- | app/models/user.rb | 7 | ||||
| -rw-r--r-- | spec/controllers/general_controller_spec.rb | 16 | 
2 files changed, 22 insertions, 1 deletions
| diff --git a/app/models/user.rb b/app/models/user.rb index 691a59e48..59a84b7aa 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -61,7 +61,8 @@ class User < ActiveRecord::Base          :values => [                [ :created_at_numeric, 1, "created_at", :number ] # for sorting          ], -        :terms => [ [ :variety, 'V', "variety" ] ] +        :terms => [ [ :variety, 'V', "variety" ] ], +        :if => :indexed_by_search?      def created_at_numeric          # format it here as no datetime support in Xapian's value ranges          return self.created_at.strftime("%Y%m%d%H%M%S")  @@ -394,6 +395,10 @@ class User < ActiveRecord::Base      def should_be_emailed?          return (self.email_confirmed && self.email_bounced_at.nil?)      end +     +    def indexed_by_search? +        return self.email_confirmed +    end      ## Private instance methods      private diff --git a/spec/controllers/general_controller_spec.rb b/spec/controllers/general_controller_spec.rb index 7fc019c64..81f4ed6d5 100644 --- a/spec/controllers/general_controller_spec.rb +++ b/spec/controllers/general_controller_spec.rb @@ -198,6 +198,22 @@ describe GeneralController, "when searching" do          assigns[:query].should be_nil      end +    it "should not show unconfirmed users" do +        get :search, :combined => ["unconfirmed", "users"] +        response.should render_template('search') +        assigns[:xapian_users].results.map{|x|x[:model]}.should == [] +    end + +    it "should show newly-confirmed users" do +        u = users(:unconfirmed_user) +        u.email_confirmed = true +        u.save! +        update_xapian_index +         +        get :search, :combined => ["unconfirmed", "users"] +        response.should render_template('search') +        assigns[:xapian_users].results.map{|x|x[:model]}.should == [u] +    end  end | 
