diff --git a/app/models/principal.rb b/app/models/principal.rb index c31effec4..21962c6dc 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -41,7 +41,7 @@ class Principal < ActiveRecord::Base # Groups and active users scope :active, lambda { where(:status => STATUS_ACTIVE) } - scope :visible, lambda {|*args| + scope :visible, (lambda do |*args| user = args.first || User.current if user.admin? @@ -64,9 +64,9 @@ class Principal < ActiveRecord::Base ) end end - } + end) - scope :like, lambda {|q| + scope :like, (lambda do |q| q = q.to_s if q.blank? where({}) @@ -85,13 +85,12 @@ class Principal < ActiveRecord::Base end.join(' AND ') sql << ')' end - where(sql, params) end - } + end) # Principals that are members of a collection of projects - scope :member_of, lambda {|projects| + scope :member_of, (lambda do |projects| projects = [projects] if projects.is_a?(Project) if projects.blank? where("1=0") @@ -101,9 +100,9 @@ class Principal < ActiveRecord::Base where(:status => [STATUS_LOCKED, STATUS_ACTIVE]). where("#{Principal.table_name}.id IN (SELECT DISTINCT user_id FROM #{Member.table_name} WHERE project_id IN (?))", ids) end - } + end) # Principals that are not members of projects - scope :not_member_of, lambda {|projects| + scope :not_member_of, (lambda do |projects| projects = [projects] unless projects.is_a?(Array) if projects.empty? where("1=0") @@ -111,7 +110,7 @@ class Principal < ActiveRecord::Base ids = projects.map(&:id) where("#{Principal.table_name}.id NOT IN (SELECT DISTINCT user_id FROM #{Member.table_name} WHERE project_id IN (?))", ids) end - } + end) scope :sorted, lambda { order(*Principal.fields_for_order_statement)} # Principals that can be added as watchers