diff --git a/addon_service/configured_addon/link/serializers.py b/addon_service/configured_addon/link/serializers.py index fea9efc3..b0848489 100644 --- a/addon_service/configured_addon/link/serializers.py +++ b/addon_service/configured_addon/link/serializers.py @@ -62,6 +62,7 @@ class ConfiguredLinkAddonSerializer(ConfiguredAddonSerializer): class Meta: model = ConfiguredLinkAddon read_only_fields = ["external_link_service"] + one_addon_per_node = False fields = [ "id", "display_name", diff --git a/addon_service/configured_addon/serializers.py b/addon_service/configured_addon/serializers.py index ce6d92ad..ab0e6475 100644 --- a/addon_service/configured_addon/serializers.py +++ b/addon_service/configured_addon/serializers.py @@ -40,10 +40,14 @@ def get_current_user_is_owner(self, configured_addon: ConfiguredAddon): def create(self, validated_data): validated_data = self.fix_dotted_base_account(validated_data) base_account = validated_data["base_account"] - if ConfiguredAddon.objects.filter( - base_account__external_service=base_account.external_service, - authorized_resource__resource_uri=validated_data["resource_uri"], - ).exists(): + validate_one_addon = getattr(self.Meta, "one_addon_per_node", True) + if ( + validate_one_addon + and ConfiguredAddon.objects.filter( + base_account__external_service=base_account.external_service, + authorized_resource__resource_uri=validated_data["resource_uri"], + ).exists() + ): raise ValidationError( f"ConfiguredAddon for requested addon and authorized_resource {validated_data['resource_uri']} already exists" ) @@ -61,6 +65,7 @@ def update(self, instance, validated_data): class Meta: resource_name = "configured-addons" model = ConfiguredAddon + one_addon_per_node = True fields = [ "id", "url",