11class CloseReasonsController < ApplicationController
22 before_action :verify_moderator
3+ before_action :check_create_access , only : [ :new , :create ]
34 before_action :set_close_reason , only : [ :edit , :update ]
45 before_action :verify_admin_for_global_reasons , only : [ :edit , :update ]
56
67 def index
7- @close_reasons = if current_user . is_global_admin && params [ :global ] == '1'
8+ @close_reasons = if current_user . global_admin? && params [ :global ] == '1'
89 CloseReason . unscoped . where ( community_id : nil )
910 else
1011 CloseReason . unscoped . where ( community_id : @community . id )
@@ -15,9 +16,12 @@ def edit; end
1516
1617 def update
1718 before = @close_reason . attributes . map { |k , v | "#{ k } : #{ v } " } . join ( ' ' )
18- @close_reason . update close_reason_params
19+ @close_reason . update ( close_reason_params )
1920 after = @close_reason . attributes . map { |k , v | "#{ k } : #{ v } " } . join ( ' ' )
20- AuditLog . moderator_audit ( event_type : 'close_reason_update' , related : @close_reason , user : current_user ,
21+
22+ AuditLog . moderator_audit ( event_type : 'close_reason_update' ,
23+ related : @close_reason ,
24+ user : current_user ,
2125 comment : "from <<CloseReason #{ before } >>\n to <<CloseReason #{ after } >>" )
2226
2327 if @close_reason . community . nil?
@@ -28,29 +32,23 @@ def update
2832 end
2933
3034 def new
31- if !current_user . is_global_admin && params [ :global ] == '1'
32- not_found!
33- return
34- end
35-
36- @close_reason = CloseReason . new
35+ @close_reason = CloseReason . new ( community : params [ :global ] == '1' ? nil : @community )
3736 end
3837
3938 def create
40- if !current_user . is_global_admin && params [ :global ] == '1'
41- not_found!
42- return
43- end
44-
4539 @close_reason = CloseReason . new ( name : params [ :close_reason ] [ :name ] ,
4640 description : params [ :close_reason ] [ :description ] ,
4741 requires_other_post : params [ :close_reason ] [ :requires_other_post ] ,
4842 active : params [ :close_reason ] [ :active ] ,
4943 community : params [ :global ] == '1' ? nil : @community )
44+
5045 if @close_reason . save
5146 attr = @close_reason . attributes_print
52- AuditLog . moderator_audit ( event_type : 'close_reason_create' , related : @close_reason , user : current_user ,
47+ AuditLog . moderator_audit ( event_type : 'close_reason_create' ,
48+ related : @close_reason ,
49+ user : current_user ,
5350 comment : "<<CloseReason #{ attr } >>" )
51+
5452 if @close_reason . community . nil?
5553 redirect_to close_reasons_path ( global : 1 )
5654 else
@@ -71,6 +69,10 @@ def set_close_reason
7169 @close_reason = CloseReason . unscoped . find ( params [ :id ] )
7270 end
7371
72+ def check_create_access
73+ not_found! unless current_user &.global_admin? || params [ :global ] != '1'
74+ end
75+
7476 def verify_admin_for_global_reasons
7577 if !current_user . global_admin? && @close_reason . community . nil?
7678 not_found!
0 commit comments