Exemplo n.º 1
0
    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,
        })
Exemplo n.º 2
0
    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.")