Exemple #1
0
class OrganizationMemberSerializer(serializers.Serializer):
    email = AllowedEmailField(max_length=75, required=True)
    role = serializers.ChoiceField(choices=roles.get_choices(), required=True)
    teams = ListField(required=False, allow_null=False)
    sendInvite = serializers.BooleanField(required=False,
                                          default=True,
                                          write_only=True)
class OrganizationMemberSerializer(serializers.Serializer):
    email = AllowedEmailField(max_length=75, required=True)
    role = serializers.ChoiceField(choices=roles.get_choices(), required=True)
    teams = ListField(required=False, allow_null=False, default=[])
    sendInvite = serializers.BooleanField(required=False,
                                          default=True,
                                          write_only=True)

    def validate_email(self, email):
        queryset = OrganizationMember.objects.filter(
            Q(email=email)
            | Q(user__email__iexact=email, user__is_active=True),
            organization=self.context["organization"],
        )

        if queryset.filter(invite_status=InviteStatus.APPROVED.value).exists():
            raise serializers.ValidationError(
                "The user %s is already a member" % email)

        if not self.context.get("allow_existing_invite_request"):
            if queryset.filter(
                    Q(invite_status=InviteStatus.REQUESTED_TO_BE_INVITED.value)
                    | Q(invite_status=InviteStatus.REQUESTED_TO_JOIN.value)
            ).exists():
                raise serializers.ValidationError(
                    "There is an existing invite request for %s" % email)
        return email

    def validate_teams(self, teams):
        valid_teams = list(
            Team.objects.filter(organization=self.context["organization"],
                                status=TeamStatus.VISIBLE,
                                slug__in=teams))

        if len(valid_teams) != len(teams):
            raise serializers.ValidationError("Invalid teams")

        return valid_teams

    def validate_role(self, role):
        if role not in {r.id for r in self.context["allowed_roles"]}:
            raise serializers.ValidationError(
                "You do not have permission to invite that role.")

        return role
class OrganizationMemberSerializer(serializers.Serializer):
    email = AllowedEmailField(max_length=75, required=True)
    role = serializers.ChoiceField(choices=roles.get_choices(), required=True)
    teams = ListField(required=False, allow_null=False)
class JoinRequestSerializer(serializers.Serializer):
    email = AllowedEmailField(max_length=75, required=True)
Exemple #5
0
class EmailValidator(serializers.Serializer):
    email = AllowedEmailField(required=True)