diff options
author | Kim Alvefur <zash@zash.se> | 2015-09-12 17:49:47 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2015-09-12 17:49:47 +0200 |
commit | 11f10d8b3129cca859b156148e41ca8dcbe13041 (patch) | |
tree | bea3749980c8426c9528f77676e0b20ab3f7da1a | |
parent | 8e89a3e5e70b563dd02f1a7664f0580882edf15a (diff) | |
download | prosody-11f10d8b3129cca859b156148e41ca8dcbe13041.tar.gz prosody-11f10d8b3129cca859b156148e41ca8dcbe13041.zip |
util.dataforms: Fix interaction of required fields and empty string values (fixes #521)
-rw-r--r-- | util/dataforms.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/util/dataforms.lua b/util/dataforms.lua index 30b5344a..05846ab3 100644 --- a/util/dataforms.lua +++ b/util/dataforms.lua @@ -147,11 +147,12 @@ end local function simple_text(field_tag, required) local data = field_tag:get_child_text("value"); - if data and #data > 0 then - return data - elseif required then + -- XEP-0004 does not say if an empty string is acceptable for a required value + -- so we will follow HTML5 which says that empty string means missing + if required and (data == nil or data == "") then return nil, "Required value missing"; end + return data; -- Return whatever get_child_text returned, even if empty string end field_readers["text-single"] = simple_text; |