Class: ModWarningController

Inherits:
ApplicationController show all
Defined in:
/var/apps/qpixel/app/controllers/mod_warning_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#dashboard, #keyboard_tools, #upload

Instance Method Details

#approveObject



12
13
14
15
16
17
18
19
20
21
22
# File '/var/apps/qpixel/app/controllers/mod_warning_controller.rb', line 12

def approve
  return not_found! if @warning.suspension_active?

  if params[:approve_checkbox].nil?
    @failed_to_click_checkbox = true
    return render 'current', layout: 'without_sidebar'
  end

  @warning.update(active: false, read: true)
  redirect_to(root_path)
end

#createObject



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
# File '/var/apps/qpixel/app/controllers/mod_warning_controller.rb', line 36

def create
  suspension_duration = params[:mod_warning][:suspension_duration].to_i

  suspension_duration = 1 if suspension_duration <= 0
  suspension_duration = 365 if suspension_duration > 365

  suspension_end = DateTime.now + suspension_duration.days

  is_suspension = params[:mod_warning][:is_suspension] == 'true'

  @warning = ModWarning.new(author: current_user, community_user: @user.community_user,
                            body: params[:mod_warning][:body], is_suspension: is_suspension,
                            suspension_end: suspension_end, active: true, read: false)

  if @warning.save
    audit_warning('warning_create', @warning)

    if is_suspension
      @user.community_user.update(is_suspended: is_suspension, suspension_end: suspension_end,
                                  suspension_public_comment: params[:mod_warning][:suspension_public_notice])

      audit_warning('suspension_create', @warning)
    end

    redirect_to user_path(@user)
  else
    render :new
  end
end

#currentObject



8
9
10
# File '/var/apps/qpixel/app/controllers/mod_warning_controller.rb', line 8

def current
  render layout: 'without_sidebar'
end

#liftObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File '/var/apps/qpixel/app/controllers/mod_warning_controller.rb', line 66

def lift
  @warning = ModWarning.to(@user).active.last
  return not_found! if @warning.nil?

  @warning.update(active: false, read: false)
  @user.community_user.update is_suspended: false, suspension_public_comment: nil, suspension_end: nil

  audit_warning('warning_lift', @warning)

  if @warning.suspension?
    audit_warning('suspension_lift', @warning)
  end

  flash[:success] = 'The warning or suspension has been lifted. Please consider adding an annotation ' \
                    'explaining your reasons.'
  redirect_to mod_warning_log_path(@user)
end

#logObject



24
25
26
27
# File '/var/apps/qpixel/app/controllers/mod_warning_controller.rb', line 24

def log
  @warnings = ModWarning.to(@user).newest_first.all
  render layout: 'without_sidebar'
end

#newObject



29
30
31
32
33
34
# File '/var/apps/qpixel/app/controllers/mod_warning_controller.rb', line 29

def new
  @templates = WarningTemplate.where(active: true).all
  @prior_warning_count = ModWarning.to(@user).newest_first.count
  @warning = ModWarning.new(author: current_user, community_user: @user.community_user)
  render layout: 'without_sidebar'
end