Update user with every login

This is still very rudimentary, and does not have tests. Right now it updates just the roles. But this could easily be extended to be more flexible.