Module: Reactor::Permission::Base

Defined in:
lib/reactor/permission.rb

Instance Method Summary collapse

Instance Method Details

#edit!(*args) ⇒ Object

Wraps around Reactor::Persistence::Base#edit! and ensures that current user has required permissions to edit the object

Raises:



54
55
56
57
# File 'lib/reactor/permission.rb', line 54

def edit!(*args)
  ensure_permission_granted(:edit)
  return super
end

#permissionObject

See Also:

  • [PermissionProxy]


23
24
25
# File 'lib/reactor/permission.rb', line 23

def permission
  @permission ||= PermissionProxy.new(self)
end

#release!(*args) ⇒ Object

Wraps around Reactor::Persistence::Base#release! and ensures that current user has required permissions to release the object

Raises:



30
31
32
33
# File 'lib/reactor/permission.rb', line 30

def release!(*args)
  ensure_permission_granted(:release)
  return super
end

#resolve_refs!Object

Wraps around Reactor::Persistence::Base#resolve_refs! and ensures that current user has required permissions to call resolve refs on the object

Raises:



88
89
90
91
# File 'lib/reactor/permission.rb', line 88

def resolve_refs!
  ensure_permission_granted(:write)
  return super
end

#revert!(*args) ⇒ Object

Wraps around Reactor::Persistence::Base#revert! and ensures that current user has required permissions to revert the object

Raises:



46
47
48
49
# File 'lib/reactor/permission.rb', line 46

def revert!(*args)
  ensure_permission_granted(:revert)
  return super
end

#saveObject

Wraps around ActiveRecord::Persistence#save and ensures that current user has required permissions to save the object

Raises:



62
63
64
65
66
67
68
69
70
71
# File 'lib/reactor/permission.rb', line 62

def save
  if persisted?
    ensure_permission_granted(:write)
  else
    ensure_create_permission_granted(self.parent_obj_id)
  end
  return super
rescue Reactor::NotPermitted
  return false
end

#save!Object

Wraps around ActiveRecord::Persistence#save! and ensures that current user has required permissions to save the object

Raises:



76
77
78
79
80
81
82
83
# File 'lib/reactor/permission.rb', line 76

def save!
  if persisted?
    ensure_permission_granted(:write)
  else
    ensure_create_permission_granted(self.parent_obj_id)
  end
  return super
end

#take!(*args) ⇒ Object

Wraps around Reactor::Persistence::Base#take! and ensures that current user has required permissions to take the object

Raises:



38
39
40
41
# File 'lib/reactor/permission.rb', line 38

def take!(*args)
  ensure_permission_granted(:take)
  return super
end