Refactor user registration scenario

and make sure editing account requires current password