Sha256: 4247f139e3667946fedf53e62ac63f8704d3186a1f007be066a9f5afde276b90
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
require 'cancan' require 'active_model_serializers' module ActiveModel class Serializer module Associations #:nodoc: class Config #:nodoc: def authorize? !!option(:authorize) end def current_ability Ability.new(source_serializer.options[:scope]) end def can?(*args) current_ability.can? *args end def cannot? current_ability.cannot? *args end end class HasMany #:nodoc: def serialize_with_cancan return serialize_without_cancan unless authorize? associated_object.select{|o| current_ability.can?(:read, o)}.map do |item| find_serializable(item).serializable_hash end end alias_method_chain :serialize, :cancan end class HasOne #:nodoc: def serialize_with_cancan return nil unless !authorize? || current_ability.can?(:read, associated_object) serialize_without_cancan end alias_method_chain :serialize, :cancan end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_model_serializers-cancan-0.0.1 | lib/active_model_serializers/cancan/associations.rb |