|
|
- # frozen_string_literal: true
-
- module Admin
- class IpBlocksController < BaseController
- def index
- authorize :ip_block, :index?
-
- @ip_blocks = IpBlock.page(params[:page])
- @form = Form::IpBlockBatch.new
- end
-
- def new
- authorize :ip_block, :create?
-
- @ip_block = IpBlock.new(ip: '', severity: :no_access, expires_in: 1.year)
- end
-
- def create
- authorize :ip_block, :create?
-
- @ip_block = IpBlock.new(resource_params)
-
- if @ip_block.save
- log_action :create, @ip_block
- redirect_to admin_ip_blocks_path, notice: I18n.t('admin.ip_blocks.created_msg')
- else
- render :new
- end
- end
-
- def batch
- @form = Form::IpBlockBatch.new(form_ip_block_batch_params.merge(current_account: current_account, action: action_from_button))
- @form.save
- rescue ActionController::ParameterMissing
- flash[:alert] = I18n.t('admin.ip_blocks.no_ip_block_selected')
- rescue Mastodon::NotPermittedError
- flash[:alert] = I18n.t('admin.custom_emojis.not_permitted')
- ensure
- redirect_to admin_ip_blocks_path
- end
-
- private
-
- def resource_params
- params.require(:ip_block).permit(:ip, :severity, :comment, :expires_in)
- end
-
- def action_from_button
- 'delete' if params[:delete]
- end
-
- def form_ip_block_batch_params
- params.require(:form_ip_block_batch).permit(ip_block_ids: [])
- end
- end
- end
|