Serious updates to User model, controller and tests.