Class: PostDB::CLI::Domains::DKIM

Inherits:
Thor
  • Object
show all
Defined in:
lib/postdb/cli/domains/dkim.rb

Instance Method Summary collapse

Instance Method Details

#dns(domain_name = nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/postdb/cli/domains/dkim.rb', line 10

def dns(domain_name = nil)
  unless domain_name
    domains = PostDB::Domain.all

    if domains.empty?
      exit_with_warning("There don't appear to be any domains on this system.")
    end

    domain_name = prompt.select("Domain:", domains.map(&:name))
  end

  domain_name = domain_name.downcase

  domain = PostDB::Domain.where(name: domain_name).first

  dkim_public = [domain.dkim.public_key.to_der].pack('m').gsub("\n", '')

  puts "mail._domainkey.#{domain.name}:"
  puts " v=DKIM1; k=rsa; p=#{dkim_public};"
end

#regenerate(domain_name = nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/postdb/cli/domains/dkim.rb', line 33

def regenerate(domain_name = nil)
  unless domain_name
    domains = PostDB::Domain.all

    if domains.empty?
      exit_with_warning("There don't appear to be any domains on this system.")
    end

    domain_name = prompt.select("Domain:", domains.map(&:name))
  end

  domain_name = domain_name.downcase

  domains = PostDB::Domain.where(name: domain_name)

  if domains.empty?
    exit_with_warning("The domain '#{domain_name}' could not be found.")
  end

  unless options[:force]
    confirm_action!("Regenerate the DKIM key for '#{domain_name}'?", "'#{domain_name}' left untouched.")
  end

  domains.each do |domain|
    domain.regenerate_dkim

    unless domain.save
      exit_with_error("The DKIM key for '#{domain_name}' couldn't be regenerated.")
    end
  end

  prompt.ok("The DKIM key for '#{domain_name}' has been regenerated.")
end