def test_require_2fa__delete_with_multiple_auth__ok(self, email_log): self._require_2fa_for_organization() new_options = settings.SENTRY_OPTIONS.copy() new_options["sms.twilio-account"] = "twilio-account" with self.settings(SENTRY_OPTIONS=new_options): # enroll in two auth methods interface = SmsInterface() interface.phone_number = "5551231234" interface.enroll(self.user) interface = TotpInterface() interface.enroll(self.user) auth = interface.authenticator url = reverse( "sentry-api-0-user-authenticator-details", kwargs={ "user_id": self.user.id, "auth_id": auth.id }, ) resp = self.client.delete(url, format="json") assert resp.status_code == 204, (resp.status_code, resp.content) assert not Authenticator.objects.filter(id=auth.id).exists() self._assert_security_email_sent("mfa-removed", email_log)
def test_require_2fa__delete_with_multiple_auth__ok(self, email_log): self._require_2fa_for_organization() new_options = settings.SENTRY_OPTIONS.copy() new_options['sms.twilio-account'] = 'twilio-account' with self.settings(SENTRY_OPTIONS=new_options): # enroll in two auth methods interface = SmsInterface() interface.phone_number = '5551231234' interface.enroll(self.user) interface = TotpInterface() interface.enroll(self.user) auth = interface.authenticator url = reverse( 'sentry-api-0-user-authenticator-details', kwargs={ 'user_id': self.user.id, 'auth_id': auth.id, } ) resp = self.client.delete(url, format='json') assert resp.status_code == 204, (resp.status_code, resp.content) assert not Authenticator.objects.filter( id=auth.id, ).exists() self._assert_security_email_sent('mfa-removed', email_log)
def test_sms_get_phone(self): interface = SmsInterface() interface.phone_number = '5551231234' interface.enroll(self.user) url = reverse('sentry-api-0-user-authenticator-details', kwargs={ 'user_id': self.user.id, 'auth_id': interface.authenticator.id, }) resp = self.client.get(url) assert resp.status_code == 200 assert resp.data['id'] == "sms" assert resp.data['authId'] == six.text_type(interface.authenticator.id) assert resp.data['phone'] == '5551231234' # should not have these because enrollment assert 'totp_secret' not in resp.data assert 'form' not in resp.data
def test_sms_get_phone(self): interface = SmsInterface() interface.phone_number = "5551231234" interface.enroll(self.user) url = reverse( "sentry-api-0-user-authenticator-details", kwargs={ "user_id": self.user.id, "auth_id": interface.authenticator.id }, ) resp = self.client.get(url) assert resp.status_code == 200 assert resp.data["id"] == "sms" assert resp.data["authId"] == six.text_type(interface.authenticator.id) assert resp.data["phone"] == "5551231234" # should not have these because enrollment assert "totp_secret" not in resp.data assert "form" not in resp.data
def test_sms_get_phone(self): interface = SmsInterface() interface.phone_number = '5551231234' interface.enroll(self.user) url = reverse( 'sentry-api-0-user-authenticator-details', kwargs={ 'user_id': self.user.id, 'auth_id': interface.authenticator.id, } ) resp = self.client.get(url) assert resp.status_code == 200 assert resp.data['id'] == "sms" assert resp.data['authId'] == six.text_type(interface.authenticator.id) assert resp.data['phone'] == '5551231234' # should not have these because enrollment assert 'totp_secret' not in resp.data assert 'form' not in resp.data