]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - doc/TODO
Update the latest TODO item.
[mailshears.git] / doc / TODO
index 4f9c0f2bf366f78192dafee6a2b2949a1d032a1c..ed67448e08edb95bd03d65f48e956fc3fc28e140 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,14 +1,25 @@
-* Error reporting sucks, and when a domain or account doesn't exist we
-  should be able to say so. The describe_domain/account functions
-  should also work better. For plugins that don't implement domains,
-  we can return a (count of?) list of accounts, or fall back to the
-  account deletion descriptions.
+* There is essentially no error handling. We report errors, but we
+  don't fail when we see one. The main reason for this is that we
+  don't know when each plugin will be run. If the first plugin
+  encounters an error, we could quit right there. But what if the
+  third one fails after the first two succeed? We would need some kind
+  of rollback mechanism.
 
-* Rename "account" to "user" everywhere.
+  For "mv", a rollback is conceivable. But with "rm", there's no going
+  back. Maybe relying on the user to interpret the output and go
+  fix stuff himself is the best we can do?
 
-* Implement "mv".
+* Add OpenDKIM support.
 
-* Add convenience methods (e.g. user_exists, domain_exists) that we
-  can use in the tests to check results.
+* Rename the "dovecot" plugin to "filesystem".
 
-* Potentially add OpenDKIM support.
+* Implement moving of domains.
+
+* The AgenDAV "user exists" test is wonky, because there's no real
+  users in AgenDAV. Right now we check the "username" column in the
+  "prefs" table, but all of the shares (and principals?) have URLs
+  instead of usernames. We don't parse the URLs, and instead rely
+  on doing find/replace of substrings in e.g. AgendavMv.
+
+  In particular, this means that AgenDAV pruning does not work! If
+  a user with default preferences is deleted, we don't notice.