require 'common/plugin.rb' module RmPlugin # # Plugins for the removal of users. # extend Plugin::Run def self.runner() return RmRunner end def self.dummy_runner() 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. users = list_domains_users([domain]) raise NonexistentDomainError.new(domain.to_s()) if users.empty? users.each do |u| delete_user(u) end end def delete_user(user) # Delete the given user. raise NotImplementedError end end