Just for the sake of sharing the same vision:

It's obvious to me here we need to improve 3 things:

* How we handle the login state (out, pending, in). We probably need a state machine somewhere. It could be in the `Server` abstraction but I would totally see that in a `CurrentUser` object too
* As said above we definitely want a `CurrentUser` or User object to replace `_currentUserData`
* In the frontend we do not differenciate between login and presence as we do in the server. But a few cards suggest we will need that anyway

Of course, all theses things are mid-term refactorings, thus not concerning this pull request :)