Sha256: 9f38cb9841798d6b0c863238198e5af9cbc6ee0855d8ae3baf670bf8c7349744

Contents?: true

Size: 1.7 KB

Versions: 25

Compression:

Stored size: 1.7 KB

Contents

module Spud::BelongsToApp
	extend ActiveSupport::Concern
	included do
		extend ClassMethods
	end
    # class Config
    # 	attr_reader :page_application
    # 	attr_reader :page_thumbnail
    # 	def initialize(app,thumb)
    # 		@page_application = app
    # 		@page_thumbnail = thumb
    # 	end
    # end
	module ClassMethods
		def belongs_to_spud_app(name=nil,options={})
			@page_title = options[:page_title]
			Spud::Core.admin_applications.each do |app|
					if app[:name].parameterize.underscore.to_sym == name
						@page_application = app
						break
					end
				end
			self.class_eval do

				before_filter { |controller|
					@page_thumbnail = self.class.page_application[:thumbnail]
          @application_name = self.class.page_application[:name]
					@page_name = self.class.page_title

					if current_user.super_admin == false
						permission = current_user_permissions.select{|perm| perm.name == @application_name}
						if permission.blank?
							flash[:error] = "You do not have access to this area."
							redirect_to spud_admin_root_url and return
						end
					end

					if controller.action_name == 'new' || controller.action_name == 'create'
						@page_name = "New #{@page_name.singularize}"
					elsif controller.action_name == 'edit' || controller.action_name == 'update'
							@page_name = "Edit #{@page_name.singularize}"
					elsif controller.action_name == 'show'
						@page_name = "Show #{@page_name.singularize}"
					end

				}

			end

		end
		def page_application
      @page_application || self.superclass.instance_variable_get('@page_application')
    end

    def page_title
    	@page_title || self.superclass.instance_variable_get('@page_title') || page_application[:name]
    end
	end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
spud_core-1.0.6 lib/spud_core/belongs_to_app.rb
spud_core-1.0.5 lib/spud_core/belongs_to_app.rb
spud_core-1.0.4 lib/spud_core/belongs_to_app.rb
spud_core-1.0.3 lib/spud_core/belongs_to_app.rb
spud_core-1.0.2 lib/spud_core/belongs_to_app.rb
spud_core-1.0.1 lib/spud_core/belongs_to_app.rb
spud_core-1.0.0 lib/spud_core/belongs_to_app.rb
spud_core-1.0.0.rc2 lib/spud_core/belongs_to_app.rb
spud_core-1.0.0.rc1.1 lib/spud_core/belongs_to_app.rb
spud_core-1.0.0.rc1 lib/spud_core/belongs_to_app.rb
spud_core-0.9.22 lib/spud_core/belongs_to_app.rb
spud_core-0.9.21 lib/spud_core/belongs_to_app.rb
spud_core-0.9.20 lib/spud_core/belongs_to_app.rb
spud_core-0.9.19 lib/spud_core/belongs_to_app.rb
tb_core-1.0.2 lib/spud_core/belongs_to_app.rb
spud_core-0.9.18 lib/spud_core/belongs_to_app.rb
tb_core-1.0.1 lib/spud_core/belongs_to_app.rb
tb_core-1.0 lib/spud_core/belongs_to_app.rb
tb_core-0.9.19 lib/spud_core/belongs_to_app.rb
tb_core-0.9.18 lib/spud_core/belongs_to_app.rb