adds validations to User model and adds #has_secure_password for authentication