summaryrefslogtreecommitdiff
path: root/app/controllers/application_controller.rb
blob: a0e166ed9dd88d75c6f0ed0aedb9f567e2716913 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :update_ip, :update_seen, :check_banned
  # TODO: use SSL


  helper :all
  include UsersHelper
  include ApplicationHelper

  helper_method :current_user
  helper_method :disabled?
  helper_method :banned?
  helper_method :normal?
  helper_method :mod?
  helper_method :admin?
  helper_method :superadmin?
  helper_method :donor?
  helper_method :confirmed?


  private

  def update_ip
    current_user && current_user.update_attribute(:last_ip, request.remote_ip)
  end

  def update_seen
    current_user && current_user.update_attribute(:last_seen, Time.now)
  end

  def current_user
    @current_user ||= User.find_by_id(session[:user_id])
  end

  def check_banned
    if current_user && current_user.banned?
      session.delete(:user_id)
      flash[:alert] = "You are banned!"
      redirect_to login_path
    end
  end


  #roles
  def disabled?
    !!(current_user && current_user.disabled?)
  end

  def banned?
    !!(current_user && current_user.banned?)
  end

  def normal?
    !!(current_user && current_user.normal?)
  end

  def mod?
    !!(current_user && current_user.mod?)
  end

  def admin?
    !!(current_user && current_user.admin?)
  end

  def superadmin?
    !!(current_user && current_user.superadmin?)
  end

  def donor?
    !!(current_user && current_user.donor?)
  end

  def confirmed?
    !!(current_user && current_user.confirmed?)
  end

end