diff options
author | Florian Zeitz <florob@babelmonkeys.de> | 2011-12-02 19:24:54 +0100 |
---|---|---|
committer | Florian Zeitz <florob@babelmonkeys.de> | 2011-12-02 19:24:54 +0100 |
commit | 2dae99da75a98d6f6dccd6983ec5f79dd52ae9d4 (patch) | |
tree | 2b6a31fa026455722bc18005fccd5bbdaadd48d9 /util/dataforms.lua | |
parent | b6555037e93ebaafbdc278e52016698a45769fe7 (diff) | |
download | prosody-2dae99da75a98d6f6dccd6983ec5f79dd52ae9d4.tar.gz prosody-2dae99da75a98d6f6dccd6983ec5f79dd52ae9d4.zip |
util.dataforms: Fix form verification
Diffstat (limited to 'util/dataforms.lua')
-rw-r--r-- | util/dataforms.lua | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/util/dataforms.lua b/util/dataforms.lua index e4d24cf6..b69df819 100644 --- a/util/dataforms.lua +++ b/util/dataforms.lua @@ -120,12 +120,18 @@ function form_t.data(layout, stanza) end end - local reader = field_readers[field.type]; - local verifier = field.verifier or field_verifiers[field.type]; - if reader then - data[field.name] = reader(tag); - if verifier then - errors[field.name] = verifier(data[field.name], tag, field.required); + if not tag then + if field.required then + errors[field.name] = "Required value missing"; + end + else + local reader = field_readers[field.type]; + local verifier = field.verifier or field_verifiers[field.type]; + if reader then + data[field.name] = reader(tag); + if verifier then + errors[field.name] = verifier(data[field.name], tag, field.required); + end end end end @@ -161,7 +167,7 @@ field_readers["jid-single"] = field_verifiers["jid-single"] = function (data, field_tag, required) - if #data == 0 and required then + if ((not data) or (#data == 0)) and required then return "Required value missing"; end if not jid_prep(data) then |