Sha256: 5f1d2b124a60f4350d239643c11dd0e60e0ac885ae6af8ce9787d1d76a762d55

Contents?: true

Size: 1.96 KB

Versions: 9

Compression:

Stored size: 1.96 KB

Contents

# -*- coding: utf-8 -*-

module MultiAuth
  module ActionController
    module ClassMethods
      def verify_method_post(options = {})
        verify({
                 :method => :post,
                 :render => {:text => "Method Not Allowed", :status => 405},
               }.merge(options))
      end
    end
    module InstanceMethods

      def self.included(base)
        base.class_eval{
          init_gettext("multi_auth",
                       :locale_path => MultiAuth.root + 'locale')
        }
      end

      private

      def authentication(user_id = session[:user_id])
        @login_user = MultiAuth.user_model_class.find_by_id(user_id)
        return true
      end

      def authentication_required
        if session[:expires_at]
          if session_expired?
            logger.info "[MultiAuth] Session has expired, resetting session"
            reset_login_session
            set_error(p_("MultiAuth", "Session has expired. Please login again."))
            return false
          end
          update_session_expiry
        end

        if @login_user
          return true
        else
          set_error(p_("MultiAuth", "Login required."))
          redirect_to(root_path)
          return false
        end
      end

      def update_session_expiry
        return unless MultiAuth.session_times_out_in
        session[:expires_at] = Time.now + MultiAuth.session_times_out_in
      end

      def session_expired?
        Time.now > session[:expires_at]
      end

      def reset_login_session
        session[:user_id] = nil
      end

      def set_notice(message)
        flash[:notice] = @flash_notice = message
        flash[:error]  = @flash_error  = nil
      end

      def set_error(message)
        flash[:notice] = @flash_notice = nil
        flash[:error]  = @flash_error  = message
      end

      def set_error_now(message)
        flash.now[:notice] = @flash_notice = nil
        flash.now[:error]  = @flash_error  = message
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
multi_auth-0.2.0 lib/multi_auth/action_controller.rb
okkez-multi_auth-0.1.0 lib/multi_auth/action_controller.rb
multi_auth-0.1.0 lib/multi_auth/action_controller.rb
okkez-multi_auth-0.0.7 lib/multi_auth/action_controller.rb
multi_auth-0.0.7 lib/multi_auth/action_controller.rb
okkez-multi_auth-0.0.6 lib/multi_auth/action_controller.rb
multi_auth-0.0.6 lib/multi_auth/action_controller.rb
okkez-multi_auth-0.0.5 lib/multi_auth/action_controller.rb
multi_auth-0.0.5 lib/multi_auth/action_controller.rb