Completed basic user model with password authentication