diff options
| author | Badlop <badlop@process-one.net> | 2010-10-25 19:00:52 +0200 |
|---|---|---|
| committer | Badlop <badlop@process-one.net> | 2010-11-03 12:44:02 +0100 |
| commit | 82e8048a8a2c409dbe6da47bd9940685cc2adee3 (patch) | |
| tree | 76eee538d208562e2c9b690ba67cceb7b06e56cc | |
| parent | Workaround 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.erl | 28 |
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}), |
