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