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