Sha256: aad33b57542652616e6c7843478690e9dbdb4ddfb0f3e693c360ccd138ac7852

Contents?: true

Size: 923 Bytes

Versions: 5

Compression:

Stored size: 923 Bytes

Contents

require 'active_support/concern'

module Wbase
  module AuthHelper
    extend ActiveSupport::Concern

    def logged_in?
      !!current_user
    end

    def subscribed?
      logged_in? && current_user && current_user.try(:subscribed?)
    end

    def current_user
      @current_user ||= User.find_by(session_token: session[:token])
    end

    def admin?
      session[:root] || current_user.root
    end

    def require_subscription!
      redirect_to '/subscription/new' unless subscribed?
    end

    def require_root!
      redirect_to '/' unless current_user.try(:root)
    end

    def require_login!
      redirect_to '/welcome' unless logged_in?
    end

    def login(user)
      session[:token] = user.session_token
      session[:root] = user.root?
      user.update(login_at: Time.now)
    end

    def logout
      current_user.try(:reset_session_token!)
      session[:root] = false
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wbase-0.2.9 app/helpers/wbase/auth_helper.rb
wbase-0.2.8 app/helpers/wbase/auth_helper.rb
wbase-0.2.7 app/helpers/wbase/auth_helper.rb
wbase-0.2.6 app/helpers/wbase/auth_helper.rb
wbase-0.2.5 app/helpers/wbase/auth_helper.rb