set_vcard(User, LServer, VCARD) ->
diff --git a/src/mod_vcard_ldap.erl b/src/mod_vcard_ldap.erl
-index f4078df..c5c830d 100644
+index f4078df..074bdf7 100644
--- a/src/mod_vcard_ldap.erl
+++ b/src/mod_vcard_ldap.erl
@@ -241,38 +241,47 @@ process_local_iq(_From, _To, #iq{type = Type, lang = Lang, sub_el = SubEl} = IQ)
+ #jid{lserver = FromLServer} = From,
+ LServer = State#state.serverhost,
+ Access = gen_mod:get_module_opt(LServer, ?MODULE, access_get, all),
-+ case ejabberd_auth:is_user_exists(LUser, LServer)
-+ and acl:match_rule(FromLServer, Access, From) of
++ case ejabberd_auth:is_user_exists(LUser, LServer) andalso
++ (acl:match_rule(FromLServer, Access, From) == allow) of
+ true ->
+ process_vcard_ldap_get(LUser, LServer, IQ, State);
+ _ ->