Add IP-based rules (#14963)
This commit is contained in:
11
app/views/admin/ip_blocks/_ip_block.html.haml
Normal file
11
app/views/admin/ip_blocks/_ip_block.html.haml
Normal file
@ -0,0 +1,11 @@
|
||||
.batch-table__row
|
||||
%label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
|
||||
= f.check_box :ip_block_ids, { multiple: true, include_hidden: false }, ip_block.id
|
||||
.batch-table__row__content
|
||||
.batch-table__row__content__text
|
||||
%samp= "#{ip_block.ip}/#{ip_block.ip.prefix}"
|
||||
- if ip_block.comment.present?
|
||||
•
|
||||
= ip_block.comment
|
||||
%br/
|
||||
= t("simple_form.labels.ip_block.severities.#{ip_block.severity}")
|
28
app/views/admin/ip_blocks/index.html.haml
Normal file
28
app/views/admin/ip_blocks/index.html.haml
Normal file
@ -0,0 +1,28 @@
|
||||
- content_for :page_title do
|
||||
= t('admin.ip_blocks.title')
|
||||
|
||||
- content_for :header_tags do
|
||||
= javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
|
||||
|
||||
- if can?(:create, :ip_block)
|
||||
- content_for :heading_actions do
|
||||
= link_to t('admin.ip_blocks.add_new'), new_admin_ip_block_path, class: 'button'
|
||||
|
||||
= form_for(@form, url: batch_admin_ip_blocks_path) do |f|
|
||||
= hidden_field_tag :page, params[:page] || 1
|
||||
|
||||
.batch-table
|
||||
.batch-table__toolbar
|
||||
%label.batch-table__toolbar__select.batch-checkbox-all
|
||||
= check_box_tag :batch_checkbox_all, nil, false
|
||||
.batch-table__toolbar__actions
|
||||
- if can?(:destroy, :ip_block)
|
||||
= f.button safe_join([fa_icon('times'), t('admin.ip_blocks.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
|
||||
.batch-table__body
|
||||
- if @ip_blocks.empty?
|
||||
= nothing_here 'nothing-here--under-tabs'
|
||||
- else
|
||||
= render partial: 'ip_block', collection: @ip_blocks, locals: { f: f }
|
||||
|
||||
= paginate @ip_blocks
|
||||
|
20
app/views/admin/ip_blocks/new.html.haml
Normal file
20
app/views/admin/ip_blocks/new.html.haml
Normal file
@ -0,0 +1,20 @@
|
||||
- content_for :page_title do
|
||||
= t('.title')
|
||||
|
||||
= simple_form_for @ip_block, url: admin_ip_blocks_path do |f|
|
||||
= render 'shared/error_messages', object: @ip_block
|
||||
|
||||
.fields-group
|
||||
= f.input :ip, as: :string, wrapper: :with_block_label, input_html: { placeholder: '192.0.2.0/24' }
|
||||
|
||||
.fields-group
|
||||
= f.input :expires_in, wrapper: :with_block_label, collection: [1.day, 2.weeks, 1.month, 6.months, 1.year, 3.years].map(&:to_i), label_method: lambda { |i| I18n.t("admin.ip_blocks.expires_in.#{i}") }, prompt: I18n.t('invites.expires_in_prompt')
|
||||
|
||||
.fields-group
|
||||
= f.input :severity, as: :radio_buttons, collection: IpBlock.severities.keys, include_blank: false, wrapper: :with_block_label, label_method: lambda { |severity| safe_join([I18n.t("simple_form.labels.ip_block.severities.#{severity}"), content_tag(:span, I18n.t("simple_form.hints.ip_block.severities.#{severity}"), class: 'hint')]) }
|
||||
|
||||
.fields-group
|
||||
= f.input :comment, as: :string, wrapper: :with_block_label
|
||||
|
||||
.actions
|
||||
= f.button :button, t('admin.ip_blocks.add_new'), type: :submit
|
@ -7,7 +7,7 @@
|
||||
%strong= account.user_email
|
||||
= "(@#{account.username})"
|
||||
%br/
|
||||
= account.user_current_sign_in_ip
|
||||
%samp= account.user_current_sign_in_ip
|
||||
•
|
||||
= t 'admin.accounts.time_in_queue', time: time_ago_in_words(account.user&.created_at)
|
||||
|
||||
|
Reference in New Issue
Block a user