mirror of
https://github.com/internetee/registry.git
synced 2025-08-03 00:12:03 +02:00
Restructure white ip interfaces #2713
This commit is contained in:
parent
cc32312328
commit
c6073c7e87
9 changed files with 32 additions and 23 deletions
|
@ -51,6 +51,6 @@ class Admin::WhiteIpsController < AdminController
|
|||
end
|
||||
|
||||
def white_ip_params
|
||||
params.require(:white_ip).permit(:ipv4, :ipv6, :interface, :registrar_id)
|
||||
params.require(:white_ip).permit(:ipv4, :ipv6, :registrar_id, { interfaces: [] })
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,19 +17,17 @@ class WhiteIp < ActiveRecord::Base
|
|||
REGISTRAR = 'registrar'
|
||||
INTERFACES = [API, REGISTRAR]
|
||||
|
||||
scope :api, -> { where(interface: API) }
|
||||
scope :registrar, -> { where(interface: REGISTRAR) }
|
||||
scope :api, -> { where("interfaces @> ?::varchar[]", "{#{API}}") }
|
||||
scope :registrar, -> { where("interfaces @> ?::varchar[]", "{#{REGISTRAR}}") }
|
||||
|
||||
def interfaces=(interfaces)
|
||||
super(interfaces.reject(&:blank?))
|
||||
end
|
||||
|
||||
class << self
|
||||
def registrar_ip_white?(ip)
|
||||
return true unless Setting.registrar_ip_whitelist_enabled
|
||||
|
||||
at = WhiteIp.arel_table
|
||||
WhiteIp.where(
|
||||
at[:interface].eq(REGISTRAR).and(
|
||||
at[:ipv4].eq(ip)
|
||||
)
|
||||
).any?
|
||||
WhiteIp.where(ipv4: ip).registrar.any?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -92,10 +92,10 @@
|
|||
%tr
|
||||
%th{class: 'col-xs-4'}= t(:ipv4)
|
||||
%th{class: 'col-xs-6'}= t(:ipv6)
|
||||
%th{class: 'col-xs-2'}= t(:interface)
|
||||
%th{class: 'col-xs-2'}= t(:interfaces)
|
||||
%tbody
|
||||
- @registrar.white_ips.order(:interface).each do |x|
|
||||
- @registrar.white_ips.each do |x|
|
||||
%tr
|
||||
%td= link_to(x.ipv4, [:admin, @registrar, x])
|
||||
%td= link_to(x.ipv6, [:admin, @registrar, x])
|
||||
%td= x.interface.upcase
|
||||
%td= x.interfaces.join(', ').upcase
|
||||
|
|
|
@ -19,11 +19,13 @@
|
|||
= f.label :ipv6
|
||||
.col-md-7
|
||||
= f.text_field(:ipv6, class: 'form-control', ipv6: true, autocomplete: 'off')
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= f.label :interface
|
||||
.col-md-7
|
||||
= f.select :interface, WhiteIp::INTERFACES.map {|x| [x.upcase, x]}, {}, class: 'form-control selectize'
|
||||
- WhiteIp::INTERFACES.each do |x|
|
||||
.form-group
|
||||
.col-md-4.control-label
|
||||
= f.label x
|
||||
.col-md-7
|
||||
= f.check_box :interfaces, { multiple: true }, x, nil
|
||||
= hidden_field_tag "white_ip[interfaces][]", nil
|
||||
%hr
|
||||
.row
|
||||
.col-md-8.text-right
|
||||
|
|
|
@ -20,5 +20,5 @@
|
|||
%dt= t(:ipv6)
|
||||
%dd= @white_ip.ipv6
|
||||
|
||||
%dt= t(:interface)
|
||||
%dd= @white_ip.interface.upcase
|
||||
%dt= t(:interfaces)
|
||||
%dd= @white_ip.interfaces.join(', ').upcase
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue