application_controller.rb - warvox - VoIP based wardialing tool, forked from rapid7/warvox.
  HTML git clone git://jay.scot/warvox
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
       application_controller.rb (1671B)
       ---
            1 class ApplicationController < ActionController::Base
            2   protect_from_forgery with: :exception
            3   helper :all
            4 
            5   helper_method :current_user_session, :current_user
            6   before_action :require_user, :load_project
            7   add_breadcrumb :projects, :root_path
            8 
            9   include ActionView::Helpers::NumberHelper
           10 
           11 private
           12 
           13   def current_user_session
           14     return @current_user_session if defined?(@current_user_session)
           15     @current_user_session = UserSession.find
           16   end
           17 
           18   def current_user
           19     return @current_user if defined?(@current_user)
           20     @current_user = current_user_session && current_user_session.record
           21   end
           22 
           23   def require_user
           24     unless current_user
           25       store_location
           26       flash.now[:notice] = "You must be logged in to access this page"
           27       redirect_to '/login'
           28       return false
           29     end
           30   end
           31 
           32   def require_no_user
           33     if current_user
           34       store_location
           35       flash[:notice] = "You must be logged out to access this page"
           36       redirect_to user_path(current_user)
           37       return false
           38     end
           39   end
           40 
           41   def store_location
           42     session[:return_to] = request.fullpath
           43   end
           44 
           45   def redirect_back_or_default(default)
           46     redirect_to(session[:return_to] || default)
           47     session[:return_to] = nil
           48   end
           49 
           50   def load_project
           51     # Only load this when we are logged in
           52     return true unless current_user
           53 
           54     if params[:project_id]
           55       @project = Project.where(id: params[:project_id].to_i).first
           56     elsif session[:project_id]
           57       @project = Project.where(id: session[:project_id].to_i).first
           58     end
           59 
           60     if @project and @project.id and not (session[:project_id] and session[:project_id] == @project.id)
           61       session[:project_id] = @project.id
           62     end
           63 
           64     true
           65   end
           66 
           67 
           68 end