Project

General

Profile

« Previous | Next » 

Revision c9579050

Added by Greg Sutcliffe about 12 years ago

  • ID c9579050559e837a91713354ae269d96fd0d10a4

Refactor my_hosts and my_facts scopes to include auth checks

View differences:

app/models/report.rb
# returns reports for hosts in the User's filter set
scope :my_reports, lambda {
user = User.current
if user.admin?
conditions = { }
else
conditions = sanitize_sql_for_conditions([" (reports.host_id in (?))", Host.my_hosts.map(&:id)])
conditions.sub!(/\s*\(\)\s*/, "")
conditions.sub!(/^(?:\(\))?\s?(?:and|or)\s*/, "")
conditions.sub!(/\(\s*(?:or|and)\s*\(/, "((")
end
return { :conditions => "" } if User.current.admin? # Admin can see all hosts
conditions = sanitize_sql_for_conditions([" (reports.host_id in (?))", Host.my_hosts.map(&:id)])
conditions.sub!(/\s*\(\)\s*/, "")
conditions.sub!(/^(?:\(\))?\s?(?:and|or)\s*/, "")
conditions.sub!(/\(\s*(?:or|and)\s*\(/, "((")
{:conditions => conditions}
}

Also available in: Unified diff