]> granicus.if.org Git - ejabberd/commitdiff
fix checking acl in mod_register_web
authorHAMANO Tsukasa <hamano@cuspy.org>
Thu, 24 Apr 2014 09:15:39 +0000 (18:15 +0900)
committerHAMANO Tsukasa <hamano@cuspy.org>
Thu, 24 Apr 2014 09:15:39 +0000 (18:15 +0900)
src/mod_register_web.erl

index 0da53b26d5882a1fe4661d8cd6949fc1c160cee8..e98478349eb000ca867ff190d32d04e67531a3fb 100644 (file)
@@ -487,12 +487,13 @@ register_account(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)
+    case jlib:make_jid(Username, Host, <<"">>) of
+      error -> {error, invalid_jid};
+      JID ->
+        case acl:match_rule(Host, Access, JID) of
+          deny -> {error, not_allowed};
+          allow -> register_account2(Username, Host, Password)
+        end
     end.
 
 register_account2(Username, Host, Password) ->