X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Frm%2Frm_plugin.rb;h=fe938b128d200b1a10427cbff7cdde17c57bd4b8;hp=cad493d9f85c95ae8a3c79bee121e59c508a8efb;hb=c2737d4d972df30725e417bed0940fc8df8e88bd;hpb=51f027b01e242737956c3ab5aecdd322d6ceeeed;ds=sidebyside diff --git a/lib/rm/rm_plugin.rb b/lib/rm/rm_plugin.rb index cad493d..fe938b1 100644 --- a/lib/rm/rm_plugin.rb +++ b/lib/rm/rm_plugin.rb @@ -1,34 +1,35 @@ +require 'common/plugin.rb' + module RmPlugin # - # Plugins for the removal of accounts. + # Plugins for the removal of users. # - def RmPlugin.included(c) - # Callback, called whenever another class or module includes this - # one. The parameter given is the name of the class or module - # that included us. - @includers ||= [] - @includers << c + extend Plugin::Run + + def self.runner() + return RmRunner end - def RmPlugin.includers - return @includers + def self.dummy_runner() + return RmDummyRunner end def delete_domain(domain) - # Delete the given domain. - raise NotImplementedError - end + # 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]) - def delete_account(account) - # Delete the given account. - raise NotImplementedError + raise NonexistentDomainError.new(domain) if usernames.empty? + + usernames.each do |u| + delete_user(u) + end end - def get_domain_usernames(domain) - # Get a list of usernames for a given domain, - # needed to delete accounts before removing - # a domain. + def delete_user(user) + # Delete the given user. raise NotImplementedError end