X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Frm%2Fplugins%2Fdovecot.rb;h=7babfbeb40d353f212459f0a040da3c9d0d6f8bb;hp=837a7fd68b4da94c3c8363d64035622c410796be;hb=b947ef8844f090eedd50be0383abe417d910bb1a;hpb=72696d3f6e95ef773af9727e9c3459b9038b0fc2 diff --git a/lib/rm/plugins/dovecot.rb b/lib/rm/plugins/dovecot.rb index 837a7fd..7babfbe 100644 --- a/lib/rm/plugins/dovecot.rb +++ b/lib/rm/plugins/dovecot.rb @@ -1,24 +1,47 @@ -# Needed for rm_r. require 'fileutils' require 'common/dovecot_plugin' require 'rm/rm_plugin' + +# Handle the removal of users and domains from the Dovecot mailstore +# (the filesystem). +# class DovecotRm include DovecotPlugin include RmPlugin - def delete_domain(domain) - # Will raise an exception if the path doesn't exist. + # Remove *domain* from the Dovecot mailstore. This just runs "rm -r" + # on the domain directory if it exists. + # + # @param domain [Domain] the domain to remove. + # + def remove_domain(domain) domain_path = self.get_domain_path(domain) + + if not File.directory?(domain_path) + raise NonexistentDomainError.new(domain.to_s()) + end + FileUtils.rm_r(domain_path) end - def delete_user(user) - # Will raise an exception if the path doesn't exist. + + # Remove *user* from the Dovecot mailstore. This just runs "rm -r" + # on the *user*'s mailbox directory, if it exists. + # + # @param user [User] the user whose mailbox directory we want to + # remove. + # + def remove_user(user) user_path = self.get_user_path(user) + + if not File.directory?(user_path) + raise NonexistentUserError.new(user.to_s()) + end + FileUtils.rm_r(user_path) end