def get(self, request, *args, **kwargs): """ Pre-validates an invite code. """ invite_id = kwargs.get("invite_id") if not invite_id: raise exceptions.ValidationError( "Please provide an invite ID to continue.") try: invite: OrganizationInvite = OrganizationInvite.objects.get( id=invite_id) except (OrganizationInvite.DoesNotExist, ValidationError): raise serializers.ValidationError( "The provided invite ID is not valid.") user = request.user if request.user.is_authenticated else None invite.validate(user=user) return response.Response({ "id": str(invite.id), "target_email": mask_email_address(invite.target_email), "first_name": invite.first_name, "organization_name": invite.organization.name, })
def test_mask_email_address(self): self.assertEqual(mask_email_address("*****@*****.**"), "h*[email protected]") self.assertEqual(mask_email_address("*****@*****.**"), "r*****[email protected]") self.assertEqual( mask_email_address("*****@*****.**"), "*@posthog.com") # one letter emails are masked differently self.assertEqual(mask_email_address("*****@*****.**"), "t********[email protected]") with self.assertRaises(ValueError) as e: mask_email_address("not an email") self.assertEqual(str(e.exception), "Please provide a valid email address.")