Move domain removal into the plugins.
[mailshears.git] / lib / rm / rm_plugin.rb
index cad493d9f85c95ae8a3c79bee121e59c508a8efb..49c340f7988f1fc75d1243de6d437795be0ac365 100644 (file)
@@ -16,8 +16,16 @@ module RmPlugin
   end
 
   def delete_domain(domain)
-    # Delete the given domain.
-    raise NotImplementedError
+    # Delete the given domain. Some plugins don't have a concept of
+    # domains, so just delete all users with a username that looks
+    # like it's in the given domain.
+    usernames = list_domains_users([domain])
+
+    raise NonexistentDomainError.new(domain) if usernames.empty?
+
+    usernames.each do |u|
+      delete_account(u)
+    end
   end
 
   def delete_account(account)
@@ -25,11 +33,4 @@ module RmPlugin
     raise NotImplementedError
   end
 
-  def get_domain_usernames(domain)
-    # Get a list of usernames for a given domain,
-    # needed to delete accounts before removing
-    # a domain.
-    raise NotImplementedError
-  end
-
 end