Sha256: 47ec258952c2b28de17275f59ce1a0a62f035aaf7c0448ef7fd778656f11e039

Contents?: true

Size: 1.68 KB

Versions: 4

Compression:

Stored size: 1.68 KB

Contents

module Lockdown
  module Frameworks
    module Merb
      module Controller

        def available_actions(klass)
          klass.callable_actions.keys
        end

        def controller_name(klass)
          klass.controller_name
        end
        
        # Locking methods
        module Lock
          def self.included(base)
            base.send :include, Lockdown::Frameworks::Merb::Controller::Lock::InstanceMethods

            base.before :set_current_user
            base.before :configure_lockdown
            base.before :check_request_authorization
          end

          module InstanceMethods
            def self.included(base)
              base.send :include, Lockdown::Controller::Core
            end

            def sent_from_uri
              request.uri
            end

            def authorized?(path)
              return true if current_user_is_admin?

              path_allowed?(path)
            end
          
            # Can log Error => e if desired, I don't desire to now.
            # For now, just send home, but will probably make this configurable
            def access_denied(e)
              redirect Lockdown::System.fetch(:access_denied_path)
            end
          
            def path_from_hash(hsh)
              return hsh if hsh.is_a?(String)
              hsh = hsh.to_hash if hsh.is_a?(Mash)
              hsh['controller'].to_s + "/" + hsh['action'].to_s
            end
          
            def redirect_back_or_default(default)
              session[:prevpage] ? redirect(session[:prevpage]) : redirect(default)
            end
          end # InstanceMethods
        end # Lock
      end # Controller
    end # Merb
  end # Frameworks
end # Lockdown

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lockdown-0.6.0 lib/lockdown/frameworks/merb/controller.rb
lockdown-0.6.2 lib/lockdown/frameworks/merb/controller.rb
lockdown-0.6.1 lib/lockdown/frameworks/merb/controller.rb
lockdown-0.6.3 lib/lockdown/frameworks/merb/controller.rb