From a8f192a2e4984acd31f914207b03adf428cb30cf Mon Sep 17 00:00:00 2001 From: Goffi Date: Fri, 20 Oct 2017 08:40:54 +0200 Subject: [PATCH] plugin schema: when publishing a schema, check that values of list are allowed, else use default value --- src/plugins/plugin_exp_pubsub_schema.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/plugins/plugin_exp_pubsub_schema.py b/src/plugins/plugin_exp_pubsub_schema.py index 2bc4111c..a473f4ef 100755 --- a/src/plugins/plugin_exp_pubsub_schema.py +++ b/src/plugins/plugin_exp_pubsub_schema.py @@ -285,6 +285,13 @@ class PubsubSchema(object): values_list = [C.bool(v) for v in values_list] elif 'jid' in field.fieldType: values_list = [jid.JID(v) for v in values_list] + if 'list' in field.fieldType: + # for lists, we check that given values are allowed in form + allowed_values = [o.value for o in field.options] + values_list = [v for v in values_list if v in allowed_values] + if not values_list: + # if values don't map to allowed values, we use default ones + values_list = field.values field.values = values_list yield self._p.sendItem(client, service, nodeIdentifier, form.toElement(), item_id, extra)