Class: ModWarningController
  
  
  
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  
  #dashboard, #keyboard_tools, #upload
  
  
    Instance Method Details
    
      
  
  
    #approve  ⇒ Object 
  
  
  
  
    
      
11
12
13
14
15
16
17
18
19
20
21 
     | 
    
      # File 'app/controllers/mod_warning_controller.rb', line 11
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
     | 
  
 
    
      
  
  
    #create  ⇒ Object 
  
  
  
  
    
      
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 
     | 
    
      # File 'app/controllers/mod_warning_controller.rb', line 35
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.,
                            body: params[:mod_warning][:body], is_suspension: is_suspension,
                            suspension_end: suspension_end, active: true, read: false)
  if @warning.save
    if is_suspension
      @user..update(is_suspended: is_suspension, suspension_end: suspension_end,
                                  suspension_public_comment: params[:mod_warning][:suspension_public_notice])
    end
    redirect_to user_path(@user)
  else
    render :new
  end
end
     | 
  
 
    
      
  
  
    #current  ⇒ Object 
  
  
  
  
    
      
7
8
9 
     | 
    
      # File 'app/controllers/mod_warning_controller.rb', line 7
def current
  render layout: 'without_sidebar'
end 
     | 
  
 
    
      
  
  
    #lift  ⇒ Object 
  
  
  
  
    
      
60
61
62
63
64
65
66
67
68
69
70
71
72
73 
     | 
    
      # File 'app/controllers/mod_warning_controller.rb', line 60
def lift
  @warning = ModWarning.where(community_user: @user., active: true).last
  return not_found if @warning.nil?
  @warning.update(active: false, read: false)
  @user..update is_suspended: false, suspension_public_comment: nil, suspension_end: nil
  AuditLog.moderator_audit(event_type: 'warning_lift', related: @warning, user: current_user,
                           comment: "<<Warning #{@warning.attributes_print} >>")
  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
     | 
  
 
    
      
  
  
    #log  ⇒ Object 
  
  
  
  
    
      
23
24
25
26 
     | 
    
      # File 'app/controllers/mod_warning_controller.rb', line 23
def log
  @warnings = ModWarning.where(community_user: @user.).order(created_at: :desc).all
  render layout: 'without_sidebar'
end 
     | 
  
 
    
      
  
  
    #new  ⇒ Object 
  
  
  
  
    
      
28
29
30
31
32
33 
     | 
    
      # File 'app/controllers/mod_warning_controller.rb', line 28
def new
  @templates = WarningTemplate.where(active: true).all
  @prior_warning_count = ModWarning.where(community_user: @user.).order(created_at: :desc).count
  @warning = ModWarning.new(author: current_user, community_user: @user.)
  render layout: 'without_sidebar'
end 
     |