+ def initialize
+ @domain_root = Configuration::MAIL_ROOT
+ end
+
+ def describe_domain(domain)
+ return get_domain_path(domain)
+ end
+
+ def describe_account(account)
+ return get_account_path(account)
+ end
+
+ def delete_domain(domain)
+ domain_path = self.get_domain_path(domain)
+ FileUtils.rm_rf(domain_path)
+ end
+
+ def delete_account(account)
+ account_path = self.get_account_path(account)
+ FileUtils.rm_rf(account_path)
+ end
+
+ def get_leftover_domains(db_domains)
+ # Get the list of domains according to the filesystem.
+ fs_domains = self.get_domains_from_filesystem()
+
+ # Return the list of domains on the filesystem that aren't in the DB.
+ return (fs_domains - db_domains)
+ end
+
+ def get_leftover_accounts(db_accounts)
+ # Get the list of accounts according to the filesystem.
+ fs_domains = self.get_domains_from_filesystem()
+ fs_accounts = self.get_accounts_from_filesystem(fs_domains)
+
+ # And return the accounts on the filesystem that aren't in the DB.
+ return (fs_accounts - db_accounts)
+ end
+
+ protected;
+