X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Fprune%2Fprune_runner.rb;h=74455d6b2ba8903655ce385b8e4c16d81ad4ccf6;hp=0f1dfeb3832a70c7baf77b59d3b8d0bfbd493e07;hb=4e7ef12d3d47aa7ec68419de46c51269c40eb158;hpb=e3826d8926e11763837a591986d453e9ef5d9dec diff --git a/lib/prune/prune_runner.rb b/lib/prune/prune_runner.rb index 0f1dfeb..74455d6 100644 --- a/lib/prune/prune_runner.rb +++ b/lib/prune/prune_runner.rb @@ -1,8 +1,35 @@ +require 'common/runner' + +# This is always needed, regardless of which plugin is running. +require 'prune/plugins/postfixadmin' + class PruneRunner include Runner def run(plugin) - puts "Not implemented" + # We don't want to check the PostfixAdmin database against itself. + return if plugin.class == PostfixadminPrune + + pfa = PostfixadminPrune.new() + + db_users = pfa.list_users() + db_domains = pfa.list_domains() + + leftover_users = plugin.get_leftover_accounts(db_users) + leftover_domains = plugin.get_leftover_domains(db_domains) + + leftover_users.each do |user| + user_description = plugin.describe_account(user) + plugin.delete_account(user) + report(plugin, "Removed user: #{user} (#{user_description})") + end + + leftover_domains.each do |domain| + domain_description = plugin.describe_domain(domain) + plugin.delete_domain(domain) + report(plugin, "Removed domain: #{domain} (#{domain_description})") + end + end end