aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_http.erl2
-rw-r--r--src/ejabberd_web_admin.erl2
-rw-r--r--src/mod_register_web.erl12
3 files changed, 11 insertions, 5 deletions
diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl
index 3e6b54d6c..ce450ebd9 100644
--- a/src/ejabberd_http.erl
+++ b/src/ejabberd_http.erl
@@ -51,7 +51,7 @@
request_auth,
request_keepalive,
request_content_length,
- request_lang = "en",
+ request_lang = <<"en">>,
%% XXX bard: request handlers are configured in
%% ejabberd.cfg under the HTTP service. For example,
%% to have the module test_web handle requests with
diff --git a/src/ejabberd_web_admin.erl b/src/ejabberd_web_admin.erl
index 9f5a5f08f..781c125dd 100644
--- a/src/ejabberd_web_admin.erl
+++ b/src/ejabberd_web_admin.erl
@@ -2183,7 +2183,7 @@ get_node(global, Node, [<<"update">>], Query, Lang) ->
?XCT(<<"h3">>, <<"Update script">>), FmtScript,
?XCT(<<"h3">>, <<"Low level update script">>),
FmtLowLevelScript, ?XCT(<<"h3">>, <<"Script check">>),
- ?XC(<<"pre">>, (iolist_to_binary(Check))),
+ ?XC(<<"pre">>, (jlib:atom_to_binary(Check))),
?BR,
?INPUTT(<<"submit">>, <<"update">>, <<"Update">>)])];
get_node(Host, Node, NPath, Query, Lang) ->
diff --git a/src/mod_register_web.erl b/src/mod_register_web.erl
index cade4bcc8..cbb6cd082 100644
--- a/src/mod_register_web.erl
+++ b/src/mod_register_web.erl
@@ -485,9 +485,15 @@ form_del_get(Host, Lang) ->
%% {error, not_allowed} |
%% {error, invalid_jid}
register_account(Username, Host, Password) ->
- case jlib:make_jid(Username, Host, <<"">>) of
- error -> {error, invalid_jid};
- _ -> register_account2(Username, Host, Password)
+ Access = gen_mod:get_module_opt(Host, mod_register, access,
+ fun(A) when is_atom(A) -> A end,
+ all),
+ JID = jlib:make_jid(Username, Host, <<"">>),
+ Match = acl:match_rule(Host, Access, JID),
+ case {JID, Match} of
+ {error, _} -> {error, invalid_jid};
+ {_, deny} -> {error, not_allowed};
+ {_, allow} -> register_account2(Username, Host, Password)
end.
register_account2(Username, Host, Password) ->