Overhaul everything to get consistent error reports.
[mailshears.git] / lib / rm / rm_plugin.rb
index fe938b128d200b1a10427cbff7cdde17c57bd4b8..fd0c541a44cb25ed7ffbe7e96db3c19b59426265 100644 (file)
@@ -15,15 +15,27 @@ module RmPlugin
     return RmDummyRunner
   end
 
+  def delete(target)
+    # A generic version of delete_user/delete_domain that
+    # dispatches base on the class of the target.
+    if target.is_a?(User)
+      return delete_user(target)
+    elsif target.is_a?(Domain)
+      return delete_domain(target)
+    else
+      raise NotImplementedError
+    end
+  end
+
   def delete_domain(domain)
     # 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])
+    users = list_domains_users([domain])
 
-    raise NonexistentDomainError.new(domain) if usernames.empty?
+    raise NonexistentDomainError.new(domain.to_s()) if users.empty?
 
-    usernames.each do |u|
+    users.each do |u|
       delete_user(u)
     end
   end