Ideally it could be great to allow easily add further users filters by defining a little extension for it:
(for one I can see more crazier ideas of filters potentially on extensions... for 2 I do not like a hard dependencies onto mailbox component from the users route. all this call for additional indirection.)
// foreach user indicate if if shall be included in the respose
interface UserFilter extends Function<Username, Publisher<Boolean>>
class HasNoMailboxesUserFilter implements UserFilter { ... }
class HasNotAllSystemMailboxesUserFilter implements UserFilter { ... }
And inject a map into usersroutes.
FinallyMailboxesRoutesModule can declare the injections for those (mailbox related) filters:
This extension would be available only for people using james as a toolkit (guice overides / combines). User defined userFilter loading is for now out of scope.
Why ?
As an administrator I wish to list inactive users of my email service.
We can distinguish two kind of inactive users:
User never logged in and never received email
How ?
We could easily determine the status of users by looking at their mailbox list:
What ?
We can easily add filters in the
/users
webadmin endpoint to support this.Ideally it could be great to allow easily add further users filters by defining a little extension for it:
(for one I can see more crazier ideas of filters potentially on extensions... for 2 I do not like a hard dependencies onto mailbox component from the users route. all this call for additional indirection.)
And inject a map into usersroutes.
Finally
MailboxesRoutesModule
can declare the injections for those (mailbox related) filters:This extension would be available only for people using james as a toolkit (guice overides / combines). User defined userFilter loading is for now out of scope.
Definition of done