app/controllers/moderation/users_controller.rb
class Moderation::UsersController < Moderation::BaseController
before_action :load_users, only: :index
load_and_authorize_resource
def index
end
def hide
hide_user
redirect_with_query_params_to({ action: :index }, { notice: I18n.t("moderation.users.notice_hide") })
end
def block
block_user
redirect_with_query_params_to index_path_options, { notice: I18n.t("moderation.users.notice_block") }
end
private
def load_users
@users = User.with_hidden.search(params[:search]).page(params[:page]).for_render
end
def hide_user
@user.hide
Activity.log(current_user, :hide, @user)
end
def block_user
@user.block
Activity.log(current_user, :block, @user)
end
def index_path_options
if request.referer
referer_params = Rails.application.routes.recognize_path(request.referer)
referer_params.except(:id).merge({
controller: "/#{referer_params[:controller]}",
action: :index
})
else
{ action: :index }
end
end
end