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
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
class Admin::IpBlocking::BlacklistController < Admin::IpBlocking::IpBaseController
 
private
 
def ip_attributes
params.require(:blacklisted_ip).permit(
:ip,
:description
)
def model
BlacklistedIp
end
 
def set_ip
@ip = BlacklistedIp.new
def index_path
admin_ip_blocking_blacklist_index_path
end
 
def get_ip
@ip = BlacklistedIp.find(params[:id])
def form_namespace
:blacklisted_ip
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
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
class Admin::IpBlocking::DnsBlacklistsController < Admin::IpBlocking::DnsBaseController
 
private
 
def dns_list_attributes
params.require(:dns_ip_blacklist).permit(
:domain,
:weight
)
def model
DnsIpBlacklist
end
 
def set_dns_list
@dns_list = DnsIpBlacklist.new
def index_path
admin_ip_blocking_dns_blacklists_path
end
 
def get_dns_list
@dns_list = DnsIpBlacklist.find(params[:id])
def form_namespace
:dns_ip_blacklist
end
end
class Admin::IpBlocking::DnsWhitelistsController < Admin::ApplicationController
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
class Admin::IpBlocking::DnsWhitelistsController < Admin::IpBlocking::DnsBaseController
 
private
 
def dns_list_attributes
params.require(:dns_ip_whitelist).permit(
:domain,
:weight
)
def model
DnsIpWhitelist
end
 
def set_dns_list
@dns_list = DnsIpWhitelist.new
def index_path
admin_ip_blocking_dns_whitelists_path
end
 
def get_dns_list
@dns_list = DnsIpWhitelist.find(params[:id])
def form_namespace
:dns_ip_whitelist
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
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
class Admin::IpBlocking::WhitelistController < Admin::IpBlocking::IpBaseController
 
private
 
def ip_attributes
params.require(:whitelisted_ip).permit(
:ip,
:description
)
def model
WhitelistedIp
end
 
def set_ip
@ip = WhitelistedIp.new
def index_path
admin_ip_blocking_whitelist_index_path
end
 
def get_ip
@ip = WhitelistedIp.find(params[:id])
def form_namespace
:whitelisted_ip
end
end
.pull-left
= form_for @ip, url: url, html: { class: 'form-inline fieldset-form' } do |f|
- if @ip.errors.any?
= form_for @row, url: url, html: { class: 'form-inline fieldset-form' } do |f|
- if @row.errors.any?
#error_explanation
.alert.alert-danger
- @ip.errors.full_messages.each do |msg|
- @row.errors.full_messages.each do |msg|
%p= msg
 
.fieldset
Loading
Loading
%ul.content-list
- if @ips.blank?
- if @collection.blank?
%li
.nothing-here-block No IP addresses to show
- else
Loading
Loading
@@ -15,7 +15,7 @@
%th
 
%tbody
- @ips.each do |ip|
= render 'admin/ip_blocking/blocking_ip', ip: ip
- @collection.each do |row|
= render 'admin/ip_blocking/blocking_ip', ip: row
 
= paginate @ips, theme: 'gitlab'
= paginate @collection, theme: 'gitlab'
.pull-left
= form_for @dns_list, url: url, html: { class: 'form-inline fieldset-form' } do |f|
- if @dns_list.errors.any?
= form_for @row, url: url, html: { class: 'form-inline fieldset-form' } do |f|
- if @row.errors.any?
#error_explanation
.alert.alert-danger
- @dns_list.errors.full_messages.each do |msg|
- @row.errors.full_messages.each do |msg|
%p= msg
 
.fieldset
Loading
Loading
%ul.content-list
- if @dns_lists.blank?
- if @collection.blank?
%li
.nothing-here-block No DNS lists to show
- else
Loading
Loading
@@ -15,7 +15,7 @@
%th
 
%tbody
- @dns_lists.each do |dns_list|
= render 'admin/ip_blocking/dns_list', dns_list: dns_list
- @collection.each do |row|
= 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
 
= render 'admin/ip_blocking/nav'
 
.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
 
= render 'admin/ip_blocking/nav'
 
.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
 
= render 'admin/ip_blocking/nav'
 
.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
 
= render 'admin/ip_blocking/nav'
 
.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