Replace 'Client' with 'Credentials' map
This commit is contained in:
parent
6e8635394e
commit
dca292f538
|
@ -32,8 +32,6 @@
|
||||||
-define(TAB, ?MODULE).
|
-define(TAB, ?MODULE).
|
||||||
-define(SERVER, ?MODULE).
|
-define(SERVER, ?MODULE).
|
||||||
|
|
||||||
-record(state, {}).
|
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% API
|
%% API
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
@ -104,6 +102,15 @@ check_acl(Credentials, PubSub, Topic, AclMods, true) ->
|
||||||
AclResult
|
AclResult
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
do_check_acl(#{zone := Zone}, _PubSub, _Topic, []) ->
|
||||||
|
emqx_zone:get_env(Zone, acl_nomatch, deny);
|
||||||
|
do_check_acl(Credentials, PubSub, Topic, [{Mod, State, _Seq}|AclMods]) ->
|
||||||
|
case Mod:check_acl({Credentials, PubSub, Topic}, State) of
|
||||||
|
allow -> allow;
|
||||||
|
deny -> deny;
|
||||||
|
ignore -> do_check_acl(Credentials, PubSub, Topic, AclMods)
|
||||||
|
end.
|
||||||
|
|
||||||
-spec(reload_acl() -> list(ok | {error, term()})).
|
-spec(reload_acl() -> list(ok | {error, term()})).
|
||||||
reload_acl() ->
|
reload_acl() ->
|
||||||
[Mod:reload_acl(State) || {Mod, State, _Seq} <- lookup_mods(acl)].
|
[Mod:reload_acl(State) || {Mod, State, _Seq} <- lookup_mods(acl)].
|
||||||
|
@ -143,7 +150,7 @@ stop() ->
|
||||||
|
|
||||||
init([]) ->
|
init([]) ->
|
||||||
_ = emqx_tables:new(?TAB, [set, protected, {read_concurrency, true}]),
|
_ = emqx_tables:new(?TAB, [set, protected, {read_concurrency, true}]),
|
||||||
{ok, #state{}}.
|
{ok, #{}}.
|
||||||
|
|
||||||
handle_call({register_mod, Type, Mod, Opts, Seq}, _From, State) ->
|
handle_call({register_mod, Type, Mod, Opts, Seq}, _From, State) ->
|
||||||
Mods = lookup_mods(Type),
|
Mods = lookup_mods(Type),
|
||||||
|
@ -194,15 +201,6 @@ terminate(_Reason, _State) ->
|
||||||
code_change(_OldVsn, State, _Extra) ->
|
code_change(_OldVsn, State, _Extra) ->
|
||||||
{ok, State}.
|
{ok, State}.
|
||||||
|
|
||||||
do_check_acl(#client{zone = Zone}, _PubSub, _Topic, []) ->
|
|
||||||
emqx_zone:get_env(Zone, acl_nomatch, deny);
|
|
||||||
do_check_acl(Client, PubSub, Topic, [{Mod, State, _Seq}|AclMods]) ->
|
|
||||||
case Mod:check_acl({Client, PubSub, Topic}, State) of
|
|
||||||
allow -> allow;
|
|
||||||
deny -> deny;
|
|
||||||
ignore -> do_check_acl(Client, PubSub, Topic, AclMods)
|
|
||||||
end.
|
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Internal functions
|
%% Internal functions
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue