Sha256: 7dc843ee3588763b7bc6da0d763157dfe843a774084243b697ddce00fb455a53

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

module Minimalist
  module Authorization
    def self.included( base )
      base.class_eval do
        include InstanceMethods
        helper_method :current_user, :logged_in?, :authorized?
      end
    end
    
    module InstanceMethods
      #######
      private
      #######

      def current_user
        @current_user ||= (get_user_from_session || User.guest)
      end

      def get_user_from_session
        User.find_by_id(session[:user_id]) if session[:user_id]
      end

      def authorization_required
        authorized? || access_denied
      end

      def authorized?(action = action_name, resource = controller_name)
        logged_in?
      end

      def logged_in?
        !current_user.is_guest?
      end

      def access_denied
        store_location if request.method == :get && !logged_in?
        redirect_to new_session_path
      end

      def store_location
        session[:return_to] = request.request_uri
      end

      def redirect_back_or_default(default)
        redirect_to(session.delete(:return_to) || default)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
minimalist_authentication-0.6.2 lib/minimalist/authorization.rb
minimalist_authentication-0.6.1 lib/minimalist/authorization.rb
minimalist_authentication-0.6 lib/minimalist/authorization.rb
minimalist_authentication-0.5 lib/minimalist/authorization.rb