class Lanes::Access::Role
Constants
- ALL
Public Class Methods
all_available()
click to toggle source
# File lib/lanes/access/role.rb, line 73 def all_available ALL end
can_access_locked_roles?(roles)
click to toggle source
By default a role can only access if it's type is included in the array of acceptable roles. An Admin role may provide a custom implementation
# File lib/lanes/access/role.rb, line 79 def can_access_locked_roles?(roles) roles.include?(self) end
delete(*klasses )
click to toggle source
# File lib/lanes/access/role.rb, line 57 def delete(*klasses ) delete_types.push(*klasses) end
grant( *klasses )
click to toggle source
# File lib/lanes/access/role.rb, line 43 def grant( *klasses ) read_types.push(*klasses) write_types.push(*klasses) delete_types.push(*klasses) end
grant_global_access(types=:all, *klass)
click to toggle source
# File lib/lanes/access/role.rb, line 26 def grant_global_access(types=:all, *klass) unless types.is_a?(Symbol) klass.unshift(types) types=:all end types = [:read,:write,:delete] if :all == types types = [*types] ALL.each do | child | types.each{ |type| child.send(type).concat(klass) } end end
inherited(subklass)
click to toggle source
# File lib/lanes/access/role.rb, line 38 def inherited(subklass) ALL << subklass subklass.read_types = []; subklass.write_types = []; subklass.delete_types = [] end
lock(klass, *attributes)
click to toggle source
# File lib/lanes/access/role.rb, line 61 def lock(klass, *attributes) attributes.each do | attr | LockedFields.lock(klass, attr, self) end end
lock_writes(klass, *attributes)
click to toggle source
# File lib/lanes/access/role.rb, line 67 def lock_writes(klass, *attributes) attributes.each do | attr | LockedFields.lock(klass, attr, self, :write) end end
new(user)
click to toggle source
# File lib/lanes/access/role.rb, line 7 def initialize(user) @user = user end
read( *klasses )
click to toggle source
# File lib/lanes/access/role.rb, line 49 def read( *klasses ) read_types.push(*klasses) end
write( *klasses )
click to toggle source
# File lib/lanes/access/role.rb, line 53 def write( *klasses ) write_types.push(*klasses) end
Public Instance Methods
can_delete?(model)
click to toggle source
# File lib/lanes/access/role.rb, line 19 def can_delete?(model) delete_types.include?(model) end
can_read?(model)
click to toggle source
# File lib/lanes/access/role.rb, line 11 def can_read?(model) read_types.include?(model) end
can_write?(model)
click to toggle source
# File lib/lanes/access/role.rb, line 15 def can_write?(model) write_types.include?(model) end