User model with password security