Skip to content
Snippets Groups Projects
Commit 3817ff7b authored by Tomasz Maczukin's avatar Tomasz Maczukin
Browse files

Move abstraction to base controllers in Admin::IpBlocking::

parent bf64752c
No related branches found
No related tags found
No related merge requests found
Showing
with 163 additions and 230 deletions
class Admin::IpBlocking::BaseController < Admin::ApplicationController
before_action :set_row, only: [:index]
before_action :get_row, only: [:edit, :update, :destroy]
def index
@collection = model.all.order('id DESC')
if params[:search].present?
@collection = search_in_collection
end
@collection = @collection.page(params[:page]).per(30)
end
def create
attrs = row_attributes
attrs[:user] = current_user
@row = model.new(attrs)
if @row.save
redirect_to index_path, notice: "Added new #{row_type_name}"
else
render 'new'
end
end
def edit
end
def update
if @row.update_attributes(row_attributes)
redirect_to index_path, notice: "Updated #{row_type_name}"
else
render 'edit'
end
end
def destroy
@row.destroy
redirect_to index_path, notice: "Removed #{row_type_name}"
end
private
def set_row
@row = model.new
end
def get_row
@row = model.find(params[:id])
end
def search_in_collection
raise NotImplementedError
end
def row_attributes
raise NotImplementedError
end
def row_type_name
raise NotImplementedError
end
def model
raise NotImplementedError
end
def index_path
raise NotImplementedError
end
def form_namespace
raise NotImplementedError
end
end
class Admin::IpBlocking::BlacklistController < Admin::ApplicationController class Admin::IpBlocking::BlacklistController < Admin::IpBlocking::IpBaseController
before_action :set_ip, only: [:index]
before_action :get_ip, only: [:edit, :update, :destroy]
def index
@ips = BlacklistedIp.all.order('id DESC')
if params[:search].present?
@ips = @ips.where(ip: params[:search])
end
@ips = @ips.page(params[:page]).per(30)
end
def create
attrs = ip_attributes
attrs[:user] = current_user
@ip = BlacklistedIp.new(attrs)
if @ip.save
redirect_to admin_ip_blocking_blacklist_index_path,
notice: 'Added new IP address to the blacklist'
else
render 'new'
end
end
def edit
end
def update
if @ip.update_attributes(ip_attributes)
redirect_to admin_ip_blocking_blacklist_index_path,
notice: 'Updated IP address'
else
render 'edit'
end
end
def destroy
@ip.destroy
redirect_to admin_ip_blocking_blacklist_index_path,
notice: 'Removed IP address from the blacklist'
end
   
private private
   
def ip_attributes def model
params.require(:blacklisted_ip).permit( BlacklistedIp
:ip,
:description
)
end end
   
def set_ip def index_path
@ip = BlacklistedIp.new admin_ip_blocking_blacklist_index_path
end end
   
def get_ip def form_namespace
@ip = BlacklistedIp.find(params[:id]) :blacklisted_ip
end end
end end
class Admin::IpBlocking::DnsBaseController < Admin::IpBlocking::BaseController
private
def search_in_collection
@collection.where(domain: params[:search])
end
def row_attributes
params.require(form_namespace).permit(
:domain,
:weight
)
end
def row_type_name
'DNS list'
end
end
class Admin::IpBlocking::DnsBlacklistsController < Admin::ApplicationController class Admin::IpBlocking::DnsBlacklistsController < Admin::IpBlocking::DnsBaseController
before_action :set_dns_list, only: [:index]
before_action :get_dns_list, only: [:edit, :update, :destroy]
def index
@dns_lists = DnsIpBlacklist.all.order('id DESC')
if params[:search].present?
@dns_lists = @dns_lists.where(domain: params[:search])
end
@dns_lists = @dns_lists.page(params[:page]).per(30)
end
def create
attrs = dns_list_attributes
attrs[:user] = current_user
@dns_list = DnsIpBlacklist.new(attrs)
if @dns_list.save
redirect_to admin_ip_blocking_dns_blacklists_path,
notice: 'Added new DNS blacklist'
else
render 'new'
end
end
def edit
end
def update
if @dns_list.update_attributes(dns_list_attributes)
redirect_to admin_ip_blocking_dns_blacklists_path,
notice: 'Updated DNS blacklist'
else
render 'edit'
end
end
def destroy
@dns_list.destroy
redirect_to admin_ip_blocking_dns_blacklists_path,
notice: 'Removed DNS blacklist'
end
   
private private
   
def dns_list_attributes def model
params.require(:dns_ip_blacklist).permit( DnsIpBlacklist
:domain,
:weight
)
end end
   
def set_dns_list def index_path
@dns_list = DnsIpBlacklist.new admin_ip_blocking_dns_blacklists_path
end end
   
def get_dns_list def form_namespace
@dns_list = DnsIpBlacklist.find(params[:id]) :dns_ip_blacklist
end end
end end
class Admin::IpBlocking::DnsWhitelistsController < Admin::ApplicationController class Admin::IpBlocking::DnsWhitelistsController < Admin::IpBlocking::DnsBaseController
before_action :set_dns_list, only: [:index]
before_action :get_dns_list, only: [:edit, :update, :destroy]
def index
@dns_lists = DnsIpWhitelist.all.order('id DESC')
if params[:search].present?
@dns_lists = @dns_lists.where(domain: params[:search])
end
@dns_lists = @dns_lists.page(params[:page]).per(30)
end
def create
attrs = dns_list_attributes
attrs[:user] = current_user
@dns_list = DnsIpWhitelist.new(attrs)
if @dns_list.save
redirect_to admin_ip_blocking_dns_whitelists_path,
notice: 'Added new DNS whitelist'
else
render 'new'
end
end
def edit
end
def update
if @dns_list.update_attributes(dns_list_attributes)
redirect_to admin_ip_blocking_dns_whitelists_path,
notice: 'Updated DNS whitelist'
else
render 'edit'
end
end
def destroy
@dns_list.destroy
redirect_to admin_ip_blocking_dns_whitelists_path,
notice: 'Removed DNS whitelist'
end
   
private private
   
def dns_list_attributes def model
params.require(:dns_ip_whitelist).permit( DnsIpWhitelist
:domain,
:weight
)
end end
   
def set_dns_list def index_path
@dns_list = DnsIpWhitelist.new admin_ip_blocking_dns_whitelists_path
end end
   
def get_dns_list def form_namespace
@dns_list = DnsIpWhitelist.find(params[:id]) :dns_ip_whitelist
end end
end end
class Admin::IpBlocking::IpBaseController < Admin::IpBlocking::BaseController
private
def search_in_collection
@collection.where(ip: params[:search])
end
def row_attributes
params.require(form_namespace).permit(
:ip,
:description
)
end
def row_type_name
'IP address'
end
end
class Admin::IpBlocking::WhitelistController < Admin::ApplicationController class Admin::IpBlocking::WhitelistController < Admin::IpBlocking::IpBaseController
before_action :set_ip, only: [:index]
before_action :get_ip, only: [:edit, :update, :destroy]
def index
@ips = WhitelistedIp.all.order('id DESC')
if params[:search].present?
@ips = @ips.where(ip: params[:search])
end
@ips = @ips.page(params[:page]).per(30)
end
def create
attrs = ip_attributes
attrs[:user] = current_user
@ip = WhitelistedIp.new(attrs)
if @ip.save
redirect_to admin_ip_blocking_whitelist_index_path,
notice: 'Added new IP address to the whitelist'
else
render 'new'
end
end
def edit
end
def update
if @ip.update_attributes(ip_attributes)
redirect_to admin_ip_blocking_whitelist_index_path,
notice: 'Updated IP address'
else
render 'edit'
end
end
def destroy
@ip.destroy
redirect_to admin_ip_blocking_whitelist_index_path,
notice: 'Removed IP address from the whitelist'
end
   
private private
   
def ip_attributes def model
params.require(:whitelisted_ip).permit( WhitelistedIp
:ip,
:description
)
end end
   
def set_ip def index_path
@ip = WhitelistedIp.new admin_ip_blocking_whitelist_index_path
end end
   
def get_ip def form_namespace
@ip = WhitelistedIp.find(params[:id]) :whitelisted_ip
end end
end end
.pull-left .pull-left
= form_for @ip, url: url, html: { class: 'form-inline fieldset-form' } do |f| = form_for @row, url: url, html: { class: 'form-inline fieldset-form' } do |f|
- if @ip.errors.any? - if @row.errors.any?
#error_explanation #error_explanation
.alert.alert-danger .alert.alert-danger
- @ip.errors.full_messages.each do |msg| - @row.errors.full_messages.each do |msg|
%p= msg %p= msg
   
.fieldset .fieldset
Loading
Loading
%ul.content-list %ul.content-list
- if @ips.blank? - if @collection.blank?
%li %li
.nothing-here-block No IP addresses to show .nothing-here-block No IP addresses to show
- else - else
Loading
@@ -15,7 +15,7 @@
Loading
@@ -15,7 +15,7 @@
%th %th
   
%tbody %tbody
- @ips.each do |ip| - @collection.each do |row|
= render 'admin/ip_blocking/blocking_ip', ip: ip = render 'admin/ip_blocking/blocking_ip', ip: row
   
= paginate @ips, theme: 'gitlab' = paginate @collection, theme: 'gitlab'
.pull-left .pull-left
= form_for @dns_list, url: url, html: { class: 'form-inline fieldset-form' } do |f| = form_for @row, url: url, html: { class: 'form-inline fieldset-form' } do |f|
- if @dns_list.errors.any? - if @row.errors.any?
#error_explanation #error_explanation
.alert.alert-danger .alert.alert-danger
- @dns_list.errors.full_messages.each do |msg| - @row.errors.full_messages.each do |msg|
%p= msg %p= msg
   
.fieldset .fieldset
Loading
Loading
%ul.content-list %ul.content-list
- if @dns_lists.blank? - if @collection.blank?
%li %li
.nothing-here-block No DNS lists to show .nothing-here-block No DNS lists to show
- else - else
Loading
@@ -15,7 +15,7 @@
Loading
@@ -15,7 +15,7 @@
%th %th
   
%tbody %tbody
- @dns_lists.each do |dns_list| - @collection.each do |row|
= render 'admin/ip_blocking/dns_list', dns_list: dns_list = render 'admin/ip_blocking/dns_list', dns_list: row
   
= paginate @dns_lists, theme: 'gitlab' = paginate @collection, theme: 'gitlab'
- page_title 'Edit', @ip.ip, 'IP Blacklist', 'IP Blocking' - page_title 'Edit', @row.ip, 'IP Blacklist', 'IP Blocking'
%h3 Edit IP Blacklist entry %h3 Edit IP Blacklist entry
   
= render 'admin/ip_blocking/nav' = render 'admin/ip_blocking/nav'
   
.gray-content-block.clearfix .gray-content-block.clearfix
= render 'admin/ip_blocking/blocking_ip_form', url: admin_ip_blocking_blacklist_path(@ip.id) = render 'admin/ip_blocking/blocking_ip_form', url: admin_ip_blocking_blacklist_path(@row.id)
- page_title 'Edit', @dns_list.domain, 'DNS Blacklists', 'IP Blocking' - page_title 'Edit', @row.domain, 'DNS Blacklists', 'IP Blocking'
%h3 Edit DNS Blacklist %h3 Edit DNS Blacklist
   
= render 'admin/ip_blocking/nav' = render 'admin/ip_blocking/nav'
   
.gray-content-block.clearfix .gray-content-block.clearfix
= render 'admin/ip_blocking/dns_list_form', url: admin_ip_blocking_dns_blacklist_path(@dns_list.id) = render 'admin/ip_blocking/dns_list_form', url: admin_ip_blocking_dns_blacklist_path(@row.id)
- page_title 'Edit', @dns_list.domain, 'DNS Whitelists', 'IP Blocking' - page_title 'Edit', @row.domain, 'DNS Whitelists', 'IP Blocking'
%h3 Edit DNS Whitelist %h3 Edit DNS Whitelist
   
= render 'admin/ip_blocking/nav' = render 'admin/ip_blocking/nav'
   
.gray-content-block.clearfix .gray-content-block.clearfix
= render 'admin/ip_blocking/dns_list_form', url: admin_ip_blocking_dns_whitelist_path(@dns_list.id) = render 'admin/ip_blocking/dns_list_form', url: admin_ip_blocking_dns_whitelist_path(@row.id)
- page_title 'Edit', @ip.ip, 'IP Whitelist', 'IP Blocking' - page_title 'Edit', @row.ip, 'IP Whitelist', 'IP Blocking'
%h3 Edit IP Whitelist entry %h3 Edit IP Whitelist entry
   
= render 'admin/ip_blocking/nav' = render 'admin/ip_blocking/nav'
   
.gray-content-block.clearfix .gray-content-block.clearfix
= render 'admin/ip_blocking/blocking_ip_form', url: admin_ip_blocking_whitelist_path(@ip.id) = render 'admin/ip_blocking/blocking_ip_form', url: admin_ip_blocking_whitelist_path(@row.id)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment