eBooru/app/controllers/user_name_change_requests_controller.rb
Earlopain fc7d84affd
[RuboCop] Enable Style/FrozenStringLiteralComment
This reduces allocations on the posts page by about 5%, from basic testing
2024-02-25 18:15:55 +01:00

46 lines
1.3 KiB
Ruby

# frozen_string_literal: true
class UserNameChangeRequestsController < ApplicationController
before_action :member_only, only: [:new, :create, :show]
before_action :moderator_only, only: :index
respond_to :html, :json
def new
@change_request = UserNameChangeRequest.new(change_request_params)
respond_with(@change_request)
end
def create
@change_request = UserNameChangeRequest.create(change_request_params)
if @change_request.errors.any?
render action: "new"
else
@change_request.approve!
redirect_to user_name_change_request_path(@change_request), notice: "Your name has been changed"
end
end
def show
@change_request = UserNameChangeRequest.find(params[:id])
check_privileges!(@change_request)
respond_with(@change_request)
end
def index
@change_requests = UserNameChangeRequest.search(search_params).paginate(params[:page], limit: params[:limit])
respond_with(@change_requests)
end
private
def check_privileges!(change_request)
return if CurrentUser.is_moderator?
raise User::PrivilegeError if change_request.user_id != CurrentUser.user.id
end
def change_request_params
params.fetch(:user_name_change_request, {}).permit(%i[desired_name change_reason])
end
end