Class: Ability

Inherits:
Object
  • Object
show all
Includes:
CanCan::Ability
Defined in:
app/models/ability.rb

Instance Method Summary collapse

Constructor Details

#initialize(user) ⇒ Ability



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/models/ability.rb', line 4

def initialize(user)
  user ||= User.new

  can :manage, Query, Query.with_role(user.role) do |query|
    query.roles.include?(user.role)
  end

  can :manage, Alert, Alert.with_role(user.role) do |alert|
    alert.query.roles.include?(user.role)
  end

  can :manage, QueryVersion, QueryVersion.with_role(user.role) do |query_version|
    query_version.query.roles.include?(user.role)
  end

  can :manage, Result, Result.with_role(user.role) do |result|
    if result.query
      result.query.roles.include?(user.role)
    else
      user == result.owner
    end
  end

  can :manage, Visualization, Visualization.with_role(user.role) do |visualization|
    visualization.query.roles.include?(user.role)
  end
end