openstreetmap-website/app/controllers/user_mutes_controller.rb
2025-02-17 17:14:31 +03:00

45 lines
1.2 KiB
Ruby

class UserMutesController < ApplicationController
include UserMethods
layout "site"
before_action :authorize_web
before_action :set_locale
authorize_resource
before_action :lookup_user, :only => [:create, :destroy]
before_action :check_database_readable
before_action :check_database_writable, :only => [:create, :destroy]
def index
@muted_users = current_user.muted_users
@title = t ".title"
redirect_to account_path unless @muted_users.any?
end
def create
user_mute = current_user.mutes.build(:subject => @user)
if user_mute.save
flash[:notice] = t(".notice", :name => user_mute.subject.display_name)
else
flash[:error] = t(".error", :name => user_mute.subject.display_name, :full_message => user_mute.errors.full_messages.to_sentence.humanize)
end
redirect_back_or_to user_mutes_path(current_user)
end
def destroy
user_mute = current_user.mutes.find_by!(:subject => @user)
if user_mute.destroy
flash[:notice] = t(".notice", :name => user_mute.subject.display_name)
else
flash[:error] = t(".error")
end
redirect_back_or_to user_mutes_path(current_user)
end
end