This rule was added in rubocop 1.79. We were inconsistent about it, so we're adding it to get more consistency.
60 lines
1.5 KiB
Ruby
60 lines
1.5 KiB
Ruby
module ModerateActions
|
|
extend ActiveSupport::Concern
|
|
include Polymorphic
|
|
|
|
PER_PAGE = 50
|
|
|
|
def index
|
|
@resources = @resources.send(@current_filter)
|
|
.send("sort_by_#{@current_order}")
|
|
.page(params[:page])
|
|
.per(PER_PAGE)
|
|
set_resources_instance
|
|
end
|
|
|
|
def hide
|
|
hide_resource resource
|
|
end
|
|
|
|
def moderate
|
|
set_resource_params
|
|
@resources = @resources.where(id: params[:resource_ids])
|
|
|
|
if params[:hide_resources].present?
|
|
@resources.accessible_by(current_ability, :hide).each { |resource| hide_resource resource }
|
|
elsif params[:ignore_flags].present?
|
|
@resources.accessible_by(current_ability, :ignore_flag).each(&:ignore_flag)
|
|
elsif params[:block_authors].present?
|
|
author_ids = @resources.pluck(author_id)
|
|
User.where(id: author_ids).accessible_by(current_ability, :block).each { |user| block_user user }
|
|
end
|
|
|
|
redirect_with_query_params_to(action: :index)
|
|
end
|
|
|
|
private
|
|
|
|
def load_resources
|
|
@resources = resource_model.accessible_by(current_ability, :moderate)
|
|
end
|
|
|
|
def hide_resource(resource)
|
|
resource.hide
|
|
Activity.log(current_user, :hide, resource)
|
|
end
|
|
|
|
def block_user(user)
|
|
user.block
|
|
Activity.log(current_user, :block, user)
|
|
end
|
|
|
|
def set_resource_params
|
|
params[:resource_ids] = params["#{resource_name}_ids"]
|
|
params[:hide_resources] = params["hide_#{resource_name.pluralize}"]
|
|
end
|
|
|
|
def author_id
|
|
:author_id
|
|
end
|
|
end
|