From 0154d7477b536387b7e50c441e6931027a596dd1 2012-02-01 19:35:49 From: Jean-Philippe Lang Date: 2012-02-01 19:35:49 Subject: [PATCH] Simplifies Principal.active scope (status defaults to 1 for groups). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8746 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/principal.rb b/app/models/principal.rb index 5acb1d4..d7814f5 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 5fd10d8..a3230f1 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')