Sha256: 408699ca3eec5498a48f876624ea7bc21334e5e52c055a50666af5b7237a3f64

Contents?: true

Size: 1.82 KB

Versions: 3

Compression:

Stored size: 1.82 KB

Contents

require_dependency 'user'

class ApplicationController < ActionController::Base
  before_filter :configure_app, :except => [ :search, :face ]
  before_filter :collect_info,  :except => [ :search, :face ]

  private
  def current_user
    @session['user']
  end
  helper_method :current_user

  def current_user=(user)
    @session['user'] = user
  end

  def logged_in?
    @session['Elitist']
  end
  helper_method :logged_in?
  
  def owns_post?(p)
    logged_in? && (current_user.id == p.user_id)
  end
  helper_method :owns_post?
  
  def user_page?
    user_actions = ['view', 'reply', 'info']
    ((@params['controller'] == 'users') && (@params['action'] != 'index')) || (user_actions.include? @params['action'])
  end
  helper_method :user_page?

  def start_user_session(user)
    @session['Elitist'] = true
    self.current_user = user
  end

  def end_user_session
    reset_session
  end

  def redirect_to_main
    redirect_to :controller => 'journal', :action => 'index'
  end

  def redirect_to_user
    redirect_to :controller => 'user', :action => 'index'
  end

  def redirect_to_draft
    redirect_to :controller => 'draft', :action => 'index'
  end

  def redirect_to_link
    redirect_to :controller => 'link', :action => 'index'
  end

  def redirect_to_login
    redirect_to :controller => 'auth', :action => 'login'
  end
  
  def redirect_to_my_home
    redirect_to :controller => 'users', :action => current_user.username
  end

  def configure_app
    @app_config = YAML::load(File.open(File.dirname(__FILE__) + "/../../config/app.yml"))
  end
  
  def collect_info
    @most_recent = Post.find_all(nil, 'created_at DESC', 25).collect {|p| p.user}.uniq
  end
  
  def auth_required
    return true if logged_in?
    redirect_to_login
  end

  def admin_required
    return true if current_user.is_admin?
    redirect_to_main
  end 
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
EliteJournal-1.9.400 app/controllers/application.rb
EliteJournal-1.9.401 app/controllers/application.rb
EliteJournal-1.9.403 app/controllers/application.rb