diff --git a/app/controllers/moderation/users_controller.rb b/app/controllers/moderation/users_controller.rb index 9e38a79bf..39f4c200a 100644 --- a/app/controllers/moderation/users_controller.rb +++ b/app/controllers/moderation/users_controller.rb @@ -1,28 +1,26 @@ class Moderation::UsersController < Moderation::BaseController + before_filter :load_users, only: :index + + load_and_authorize_resource + def index - @users = User.with_hidden.search(params[:name_or_email]).page(params[:page]).for_render end def hide_in_moderation_screen - hide_user + @user.block redirect_to request.query_parameters.merge(action: :index), notice: I18n.t('moderation.users.notice_hide') end def hide - hide_user + @user.block redirect_to debates_path end private - def hide_user - user = User.find(params[:id]) - debates_ids = Debate.where(author_id: user.id).pluck(:id) - comments_ids = Comment.where(user_id: user.id).pluck(:id) - user.hide - Debate.hide_all debates_ids - Comment.hide_all comments_ids - end + def load_users + @users = User.with_hidden.search(params[:name_or_email]).page(params[:page]).for_render + end -end \ No newline at end of file +end diff --git a/app/models/user.rb b/app/models/user.rb index 8c11ddad9..a806de7c3 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -117,6 +117,15 @@ class User < ActiveRecord::Base update official_position: nil, official_level: 0 end + def block + debates_ids = Debate.where(author_id: id).pluck(:id) + comments_ids = Comment.where(user_id: id).pluck(:id) + + self.hide + Debate.hide_all debates_ids + Comment.hide_all comments_ids + end + def self.search(term) term.present? ? where("email = ? OR username ILIKE ?", term, "%#{term}%") : none end