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)
class EmailValidator(serializers.Serializer): email = AllowedEmailField(required=True)