Revision c9579050
Added by Greg Sutcliffe about 12 years ago
- ID c9579050559e837a91713354ae269d96fd0d10a4
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
Refactor my_hosts and my_facts scopes to include auth checks