Lastuser's code is now organized across three Flask blueprints: lastuser_core, which only provides the database models, lastuser_oauth, which provides the minimal UI required for logging in, plus a login provider framework, and lastuser_ui, the optional UI layer for editing your profile, adding client apps and managing organizations.
There are three key outcomes from this change:
1. The login service framework is now completely modular, making it trivial to add support for more services like Facebook and LinkedIn.
2. The UI blueprint can be turned off and it's functionality incorporated in another app (via forthcoming public APIs to all internals; currently by direct database access).
3. Most important: it is now possible to merge user accounts. If you previously had separate accounts via Twitter and GitHub, Lastuser will now help you merge them and migrate all data. (Ticket
#26)
Change #3 is scary because it hasn't had enough testing and I do not know how to write automatic tests involving third-party login services. This is why I'm withholding from deploying to production for now.
#3 will also require client apps to be aware when the user next logs in and to help merge their data from old accounts. Flask-Lastuser isn't yet aware of old ids, so that's another reason to withhold from production.
I've been running this version of Lastuser for development for a couple months and it's stable, but I'll appreciate feedback. Please switch to the code-reorg branch and let me know if you notice anything funny.
Best,
Kiran