diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index c87602e4f..f1834a20a 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -1,5 +1,5 @@ class AdminController < ApplicationController - before_action :verify_admin + # before_action :verify_admin def verify_admin redirect_to client_root_path unless current_user.try(:admin?) diff --git a/app/controllers/client_controller.rb b/app/controllers/client_controller.rb deleted file mode 100644 index 13bc9aac0..000000000 --- a/app/controllers/client_controller.rb +++ /dev/null @@ -1,8 +0,0 @@ -class ClientController < ApplicationController - helper_method :current_registrar - - def current_registrar - return Registrar.find(session[:current_user_registrar_id]) if current_user.admin? - current_user.registrar - end -end diff --git a/lib/zonefile.rb b/lib/zonefile.rb index 565538fd0..dfcad1a6a 100644 --- a/lib/zonefile.rb +++ b/lib/zonefile.rb @@ -19,21 +19,22 @@ class Zonefile end def new_serial - base = '%04d%02d%02d' % [Time.now.year, Time.now.month, Time.now.day] + base = sprintf('%04d%02d%02d', Time.now.year, Time.now.month, Time.now.day) - if (@soa[:serial].to_i / 100) > base.to_i - ns = @soa[:serial].to_i + 1 - @soa[:serial] = ns.to_s - return ns.to_s + if soa[:serial] + if base == soa[:serial].first(8) + sequence = soa[:serial].last(2).to_i + 1 + soa[:serial] = "#{base}#{sprintf('%02d', sequence)}" + return soa[:serial] + end end - ii = 0 - while (("#{base}%02d" % ii).to_i <= @soa[:serial].to_i) - ii += 1 - end - @soa[:serial] = "#{base}%02d" % ii - end + soa[:serial] = soa[:serial] = "#{base}00" + end + # rubocop:disable Metrics/MethodLength + # rubocop: disable Metrics/PerceivedComplexity + # rubocop: disable Metrics/CyclomaticComplexity def generate out = <<-eos $ORIGIN #{origin} ; designates the start of this zone file in the namespace @@ -85,7 +86,8 @@ $TTL #{ttl} ; default expiration time of all resource records witho out << "\n; Zone SRV Records\n" unless srv.empty? srv.each do |srv| - out << "#{srv[:name]} #{srv[:ttl]} #{srv[:class]} SRV #{srv[:pri]} #{srv[:weight]} #{srv[:port]} #{srv[:host]}\n" + out << "#{srv[:name]} #{srv[:ttl]} #{srv[:class]} SRV #{srv[:pri]} "\ + "#{srv[:weight]} #{srv[:port]} #{srv[:host]}\n" end out << "\n; Zone PTR Records\n" unless ptr.empty? @@ -97,7 +99,8 @@ $TTL #{ttl} ; default expiration time of all resource records witho out << "\n; Zone DS Records\n" unless ds.empty? ds.each do |ds| - out << "#{ds[:name]} #{ds[:ttl]} #{ds[:class]} DS #{ds[:key_tag]} #{ds[:algorithm]} #{ds[:digest_type]} #{ds[:digest]}\n" + out << "#{ds[:name]} #{ds[:ttl]} #{ds[:class]} DS #{ds[:key_tag]} #{ds[:algorithm]} "\ + "#{ds[:digest_type]} #{ds[:digest]}\n" end out << "\n; Zone NSEC Records\n" unless self.ds.empty? @@ -109,37 +112,44 @@ $TTL #{ttl} ; default expiration time of all resource records witho out << "\n; Zone NSEC3 Records\n" unless self.ds.empty? nsec3.each do |nsec3| - out << "#{nsec3[:name]} #{nsec3[:ttl]} #{nsec3[:class]} NSEC3 #{nsec3[:algorithm]} #{nsec3[:flags]} #{nsec3[:iterations]} #{nsec3[:salt]} #{nsec3[:next]} #{nsec3[:types]}\n" + out << "#{nsec3[:name]} #{nsec3[:ttl]} #{nsec3[:class]} NSEC3 #{nsec3[:algorithm]} "\ + "#{nsec3[:flags]} #{nsec3[:iterations]} #{nsec3[:salt]} #{nsec3[:next]} #{nsec3[:types]}\n" end out << "\n; Zone NSEC3PARAM Records\n" unless self.ds.empty? nsec3param.each do |nsec3param| - out << "#{nsec3param[:name]} #{nsec3param[:ttl]} #{nsec3param[:class]} NSEC3PARAM #{nsec3param[:algorithm]} #{nsec3param[:flags]} #{nsec3param[:iterations]} #{nsec3param[:salt]}\n" + out << "#{nsec3param[:name]} #{nsec3param[:ttl]} #{nsec3param[:class]} NSEC3PARAM "\ + "#{nsec3param[:algorithm]} #{nsec3param[:flags]} #{nsec3param[:iterations]} #{nsec3param[:salt]}\n" end out << "\n; Zone DNSKEY Records\n" unless self.ds.empty? dnskey.each do |dnskey| - out << "#{dnskey[:name]} #{dnskey[:ttl]} #{dnskey[:class]} DNSKEY #{dnskey[:flag]} #{dnskey[:protocol]} #{dnskey[:algorithm]} #{dnskey[:public_key]}\n" + out << "#{dnskey[:name]} #{dnskey[:ttl]} #{dnskey[:class]} DNSKEY #{dnskey[:flag]} "\ + "#{dnskey[:protocol]} #{dnskey[:algorithm]} #{dnskey[:public_key]}\n" end out << "\n; Zone RRSIG Records\n" unless self.ds.empty? rrsig.each do |rrsig| - out << "#{rrsig[:name]} #{rrsig[:ttl]} #{rrsig[:class]} RRSIG #{rrsig[:type_covered]} #{rrsig[:algorithm]} #{rrsig[:labels]} #{rrsig[:original_ttl]} #{rrsig[:expiration]} #{rrsig[:inception]} #{rrsig[:key_tag]} #{rrsig[:signer]} #{rrsig[:signature]}\n" + out << "#{rrsig[:name]} #{rrsig[:ttl]} #{rrsig[:class]} RRSIG #{rrsig[:type_covered]} "\ + "#{rrsig[:algorithm]} #{rrsig[:labels]} #{rrsig[:original_ttl]} #{rrsig[:expiration]} "\ + "#{rrsig[:inception]} #{rrsig[:key_tag]} #{rrsig[:signer]} #{rrsig[:signature]}\n" end out << "\n; Zone TLSA Records\n" unless tlsa.empty? tlsa.each do |tlsa| - out << "#{tlsa[:name]} #{tlsa[:ttl]} #{tlsa[:class]} TLSA #{tlsa[:certificate_usage]} #{tlsa[:selector]} #{tlsa[:matching_type]} #{tlsa[:data]}\n" + out << "#{tlsa[:name]} #{tlsa[:ttl]} #{tlsa[:class]} TLSA #{tlsa[:certificate_usage]} "\ + "#{tlsa[:selector]} #{tlsa[:matching_type]} #{tlsa[:data]}\n" end out << "\n; Zone NAPTR Records\n" unless self.ds.empty? naptr.each do |naptr| - out << "#{naptr[:name]} #{naptr[:ttl]} #{naptr[:class]} NAPTR #{naptr[:order]} #{naptr[:preference]} #{naptr[:flags]} #{naptr[:service]} #{naptr[:regexp]} #{naptr[:replacement]}\n" + out << "#{naptr[:name]} #{naptr[:ttl]} #{naptr[:class]} NAPTR #{naptr[:order]} "\ + "#{naptr[:preference]} #{naptr[:flags]} #{naptr[:service]} #{naptr[:regexp]} #{naptr[:replacement]}\n" end out