module CrewdPolicies::JSONAPIResource::ClassMethods
Public Instance Methods
creatable_fields(context)
click to toggle source
# File lib/crewd_policies/jsonapi_resources.rb, line 33 def creatable_fields(context) p = ::Pundit.policy!(context[:user],_model_class) p.allowed_fields(:write).map(&:to_sym) end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/crewd_policies/jsonapi_resources.rb, line 19 def inherited(subclass) super cls = subclass._model_class attrs = cls.roles_rules.values.flatten.map{|h| h[:fields]}.compact.flatten.uniq.map(&:to_sym) # all fields from all rules attrs.delete_if { |f| cls.reflections.has_key? f.to_s } if cls.respond_to? :reflections # remove associations attrs -= [:id] subclass.send(:attributes, *attrs) unless attrs.empty? end
updatable_fields(context)
click to toggle source
# File lib/crewd_policies/jsonapi_resources.rb, line 28 def updatable_fields(context) p = ::Pundit.policy!(context[:user],_model_class) p.allowed_fields(:write).map(&:to_sym) end