aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2010-10-25 19:00:52 +0200
committerBadlop <badlop@process-one.net>2010-11-03 12:44:02 +0100
commit82e8048a8a2c409dbe6da47bd9940685cc2adee3 (patch)
tree76eee538d208562e2c9b690ba67cceb7b06e56cc
parentWorkaround for Psi's wrong Type in form submission (diff)
Changes in registration form to workaround client problems (EJAB-1262)
Changes included: * Remove var in fixed field because Gajim and Tkabber display it to user * Add workaround for Psi's overlap fields * Add var=url attribute, required by Psi to display the field * Provide the image URL as a copy-able form field
-rw-r--r--src/ejabberd_captcha.erl28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/ejabberd_captcha.erl b/src/ejabberd_captcha.erl
index 38675ac58..d61ebb95f 100644
--- a/src/ejabberd_captcha.erl
+++ b/src/ejabberd_captcha.erl
@@ -239,10 +239,11 @@ create_captcha_x(SID, To, Lang, HeadEls, TailEls) ->
}
],
children = [#xmlcdata{cdata = B64Image}]},
- HelpTxt = io_lib:format(
- translate:translate(
- Lang, "Visit ~s if you don't see the image"),
- [get_url(Id ++ "/image")]),
+ HelpTxt = translate:translate(
+ Lang,
+ "If you don't see the CAPTCHA image here, "
+ "visit the web page."),
+ Imageurl = list_to_binary(get_url(Id ++ "/image")),
Captcha =
#xmlel{name = 'x',
ns = ?NS_DATA_FORMS_s,
@@ -255,6 +256,25 @@ create_captcha_x(SID, To, Lang, HeadEls, TailEls) ->
?VFIELD(<<"hidden">>, <<"FORM_TYPE">>, #xmlcdata{cdata = ?NS_CAPTCHA_b}) | HeadEls] ++ [
#xmlel{ns = ?NS_DATA_FORMS, name = 'field', attrs =
[?XMLATTR('type', <<"fixed">>), ?XMLATTR('label', HelpTxt)]},
+ ?VFIELD(<<"hidden">>, <<"captchahidden">>, #xmlcdata{cdata = <<"workaround-for-psi">>}),
+
+ #xmlel{name = 'field',
+ attrs = [
+ #xmlattr{name = 'type',
+ value = <<"text-single">>
+ },
+ #xmlattr{name = 'label',
+ value = translate:translate(Lang, "CAPTCHA web page")
+ },
+ #xmlattr{name = 'var',
+ value = <<"url">>
+ }
+ ],
+ children = [
+ #xmlel{name = 'value',
+ children = [#xmlcdata{cdata = Imageurl}]
+ }
+ ]},
?VFIELD(<<"hidden">>, <<"from">>, #xmlcdata{cdata = exmpp_jid:to_binary(To)}),
?VFIELD(<<"hidden">>, <<"challenge">>, #xmlcdata{cdata = list_to_binary(Id)}),
?VFIELD(<<"hidden">>, <<"sid">>, #xmlcdata{cdata = SID}),