admin UI for managing ip pools & ip addresses

This commit is contained in:
Adam Cooke
2017-04-21 11:09:31 +01:00
parent 6eb425eaed
commit c09c501ef4
11 changed files with 232 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
class IPPoolsController < ApplicationController
before_action :admin_required
before_action { params[:id] && @ip_pool = IPPool.find_by_uuid!(params[:id]) }
def index
@ip_pools = IPPool.order(:name).to_a
end
def new
@ip_pool = IPPool.new
end
def create
@ip_pool = IPPool.new(safe_params)
if @ip_pool.save
redirect_to_with_json [:edit, @ip_pool], :notice => "IP Pool has been added successfully. You can now add IP addresses to it."
else
render_form_errors 'new', @ip_pool
end
end
def update
if @ip_pool.update(safe_params)
redirect_to_with_json [:edit, @ip_pool], :notice => "IP Pool has been updated."
else
render_form_errors 'edit', @ip_pool
end
end
def destroy
@ip_pool.destroy
redirect_to_with_json :ip_pools, :notice => "IP pool has been removed successfully."
rescue ActiveRecord::DeleteRestrictionError => e
redirect_to_with_json [:edit, @ip_pool], :alert => "IP pool cannot be removed because it is still assigned to servers/rules."
end
private
def safe_params
params.require(:ip_pool).permit(:name, :type, :default)
end
end