diff --git a/app/models/principal.rb b/app/models/principal.rb index 5acb1d45d..d7814f595 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -24,7 +24,7 @@ class Principal < ActiveRecord::Base has_many :issue_categories, :foreign_key => 'assigned_to_id', :dependent => :nullify # Groups and active users - named_scope :active, :conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status = 1)" + named_scope :active, :conditions => "#{Principal.table_name}.status = 1" named_scope :like, lambda {|q| s = "%#{q.to_s.strip.downcase}%" diff --git a/test/unit/principal_test.rb b/test/unit/principal_test.rb index 5fd10d8ed..a3230f1c6 100644 --- a/test/unit/principal_test.rb +++ b/test/unit/principal_test.rb @@ -19,6 +19,14 @@ require File.expand_path('../../test_helper', __FILE__) class PrincipalTest < ActiveSupport::TestCase + def test_active_scope_should_return_groups_and_active_users + result = Principal.active.all + assert_include Group.first, result + assert_not_nil result.detect {|p| p.is_a?(User)} + assert_nil result.detect {|p| p.is_a?(User) && !p.active?} + assert_nil result.detect {|p| p.is_a?(AnonymousUser)} + end + context "#like" do setup do Principal.generate!(:login => 'login')