Sha256: 826e8a134895badef24279799cc442cd5e575d0022c222aa41f24bdfa00e2a5e

Contents?: true

Size: 869 Bytes

Versions: 5

Compression:

Stored size: 869 Bytes

Contents

require_dependency "para/application_controller"

module Para
  module Admin
    class SingletonResourcesController < Para::Admin::ResourcesController
      include Para::Admin::ResourceControllerConcerns

      before_filter :load_and_authorize_singleton_resource
      after_filter :attach_resource_to_component, only: [:create]

      private

      def attach_resource_to_component
        return unless resource.persisted?
        @component.resource = resource
        @component.save
      end

      def load_and_authorize_singleton_resource
        loader = self.class.cancan_resource_class.new(
          self, :resource, parent: false, class: resource_model.name,
          singleton: true, through: :component
        )

        loader.load_and_authorize_resource
        instance_variable_set(:"@#{ resource_name }", @resource)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
para-0.5.4 app/controllers/para/admin/singleton_resources_controller.rb
para-0.5.3 app/controllers/para/admin/singleton_resources_controller.rb
para-0.5.1 app/controllers/para/admin/singleton_resources_controller.rb
para-0.5.0 app/controllers/para/admin/singleton_resources_controller.rb
para-0.4.0 app/controllers/para/admin/singleton_resources_controller.rb