mirror of
https://github.com/internetee/registry.git
synced 2025-05-18 10:19:45 +02:00
66 lines
1.5 KiB
Ruby
66 lines
1.5 KiB
Ruby
class Admin::NameserversController < ApplicationController
|
|
before_action :set_domain
|
|
before_action :set_nameserver, only: [:edit, :update, :destroy]
|
|
|
|
def new
|
|
@nameserver = @domain.nameservers.build
|
|
end
|
|
|
|
def create
|
|
unless @domain.can_add_nameserver?
|
|
@nameserver = @domain.nameservers.build(nameserver_params)
|
|
flash.now[:alert] = I18n.t('shared.failed_to_add_nameserver')
|
|
render 'new' and return
|
|
end
|
|
|
|
@domain.nameservers.build(nameserver_params)
|
|
|
|
if @domain.save
|
|
flash[:notice] = I18n.t('shared.nameserver_added')
|
|
redirect_to [:admin, @domain]
|
|
else
|
|
flash.now[:alert] = I18n.t('shared.failed_to_add_nameserver')
|
|
render 'new'
|
|
end
|
|
end
|
|
|
|
def edit
|
|
@nameserver = Nameserver.find(params[:id])
|
|
end
|
|
|
|
def update
|
|
if @nameserver.update(nameserver_params) && @domain.valid?
|
|
redirect_to [:admin, @domain]
|
|
else
|
|
render 'edit'
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
if @domain.can_remove_nameserver?
|
|
if @nameserver.destroy
|
|
flash[:notice] = I18n.t('shared.nameserver_deleted')
|
|
else
|
|
flash[:alert] = I18n.t('shared.failed_to_delete_nameserver')
|
|
end
|
|
else
|
|
flash[:alert] = @domain.errors[:nameservers].first
|
|
end
|
|
|
|
redirect_to [:admin, @domain]
|
|
end
|
|
|
|
private
|
|
|
|
def set_domain
|
|
@domain = Domain.find(params[:domain_id])
|
|
end
|
|
|
|
def set_nameserver
|
|
@nameserver = Nameserver.find(params[:id])
|
|
end
|
|
|
|
def nameserver_params
|
|
params.require(:nameserver).permit(:hostname, :ipv4, :ipv6)
|
|
end
|
|
end
|