Sha256: 22ce42c5ab5a5934709e77a90ee6f511e2a2deaf7c9d5e91de0ef1c1a35f4257

Contents?: true

Size: 814 Bytes

Versions: 1

Compression:

Stored size: 814 Bytes

Contents

module CanTango
  class UserAcEngine < Engine
    autoload_modules :Executor

    def initialize ability
      super
    end

    def execute!
      return if !valid?
      debug "User AC Engine executing..."

      permissions.each do |permission|
        ability.can permission.action.to_sym, permission.thing_type.constantize do |thing|
          thing.nil? || permission.thing_id.nil? || permission.thing_id == thing.id
        end
      end
    end

    def valid?
      return false if !valid_mode?
      permissions.empty? ? invalid : true
    end

    def engine_name
      :user_ac
    end

    protected

    def permissions
      candidate.respond_to?(:permissions) ? candidate.permissions : []
    end

    def invalid
      debug "No permissions for #{candidate} found!"
      false
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.9.3.2 lib/cantango/user_ac_engine.rb