class Sanction::Permission

Attributes

predicates[R]

Public Class Methods

new(permission_graph, *predicates) click to toggle source
# File lib/sanction/permission.rb, line 6
def initialize(permission_graph, *predicates)
  @graph      = permission_graph
  @predicates = predicates
end

Public Instance Methods

path() click to toggle source
# File lib/sanction/permission.rb, line 11
def path
  @path ||= begin
    path = @graph.root
    @predicates.each do |predicate|
      if predicate.is_a?(Class)
        path = path[predicate.to_s.demodulize.underscore.to_sym]
      else
        path = path[predicate.class.to_s.demodulize.underscore.to_sym][predicate.id]
      end
    end
    path
  end
end
permitted?() click to toggle source
# File lib/sanction/permission.rb, line 29
def permitted?
  path.permitted?
end
permitted_with_scope?(scope) click to toggle source
# File lib/sanction/permission.rb, line 33
def permitted_with_scope?(scope)
  permitted? && path.has_scope?(scope)
end
persisted?() click to toggle source
# File lib/sanction/permission.rb, line 25
def persisted?
  path.persisted?
end