Sha256: 69c7f82db266ee323fccbc96f83f0b3aa6699efb1fa9e1fdcc18c69e8eb93396

Contents?: true

Size: 1.28 KB

Versions: 7

Compression:

Stored size: 1.28 KB

Contents

module Spider; module Admin

    class AppAdminController < Spider::PageController
        include Spider::Auth::AuthHelper

        def before(action='', *params)
            @scene.admin_breadcrumb ||= []
            unless @_did_breadcrumb
                @scene.admin_breadcrumb << {:url => self.class.http_s_url, :label => self.class.app.full_name}
            end
            @_did_breadcrumb = true
            super
            unless check_action(action, :login)
                our_app = Spider::Admin.apps[self.class.app.short_name]
                raise "Admin #{self.class.app.short_name} not configured" unless our_app
                user_classes = our_app[:options][:users] || []
                user_classes += Spider::Admin.base_allowed_users
                if (user_classes & (@request.users.map{ |u| u.class})).empty?
                    raise Spider::Auth::Unauthorized.new(_("User not authorized to access this application"))
                end
                if our_app[:options][:check]
                    unless @request.users.any?{ |u| our_app[:options][:check].call(u) }
                        raise Spider::Auth::Unauthorized.new(_("User not authorized to access this application"))
                    end
                end
            end
        end

    end

end; end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spiderfw-1.0.1 apps/core/admin/controllers/app_admin_controller.rb
spiderfw-1.0.0 apps/core/admin/controllers/app_admin_controller.rb
spiderfw-0.6.39 apps/core/admin/controllers/app_admin_controller.rb
spiderfw-0.6.38 apps/core/admin/controllers/app_admin_controller.rb
spiderfw-0.6.37 apps/core/admin/controllers/app_admin_controller.rb
spiderfw-0.6.35 apps/core/admin/controllers/app_admin_controller.rb
spiderfw-0.6.34 apps/core/admin/controllers/app_admin_controller.rb