+require 'common/plugin.rb'
+
module RmPlugin
#
# 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
- end
-
- def RmPlugin.includers
- return @includers
- end
+ extend Plugin::Run
- def runner()
+ def self.runner()
return RmRunner
end
- def dummy_runner()
+ 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.
- 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