fix(authz api): fix update config error
Signed-off-by: zhanghongtong <rory-z@outlook.com>
This commit is contained in:
parent
55ec5bab9e
commit
dd3b91e13f
|
@ -57,7 +57,7 @@ authorization {
|
||||||
# },
|
# },
|
||||||
{
|
{
|
||||||
type: built-in-database
|
type: built-in-database
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
type: file
|
type: file
|
||||||
# file is loaded into cache
|
# file is loaded into cache
|
||||||
|
|
|
@ -55,6 +55,11 @@
|
||||||
-define(CMD_APPEND, append).
|
-define(CMD_APPEND, append).
|
||||||
-define(CMD_MOVE, move).
|
-define(CMD_MOVE, move).
|
||||||
|
|
||||||
|
-define(CMD_MOVE_TOP, <<"top">>).
|
||||||
|
-define(CMD_MOVE_BOTTOM, <<"bottom">>).
|
||||||
|
-define(CMD_MOVE_BEFORE(Before), {<<"before">>, Before}).
|
||||||
|
-define(CMD_MOVE_AFTER(After), {<<"after">>, After}).
|
||||||
|
|
||||||
-define(METRICS(Type), tl(tuple_to_list(#Type{}))).
|
-define(METRICS(Type), tl(tuple_to_list(#Type{}))).
|
||||||
-define(METRICS(Type, K), #Type{}#Type.K).
|
-define(METRICS(Type, K), #Type{}#Type.K).
|
||||||
|
|
||||||
|
|
|
@ -64,9 +64,9 @@ move(Type, Cmd) ->
|
||||||
move(Type, Cmd, #{}).
|
move(Type, Cmd, #{}).
|
||||||
|
|
||||||
move(Type, #{<<"before">> := Before}, Opts) ->
|
move(Type, #{<<"before">> := Before}, Opts) ->
|
||||||
emqx:update_config(?CONF_KEY_PATH, {?CMD_MOVE, type(Type), #{<<"before">> => type(Before)}}, Opts);
|
emqx:update_config(?CONF_KEY_PATH, {?CMD_MOVE, type(Type), ?CMD_MOVE_BEFORE(type(Before))}, Opts);
|
||||||
move(Type, #{<<"after">> := After}, Opts) ->
|
move(Type, #{<<"after">> := After}, Opts) ->
|
||||||
emqx:update_config(?CONF_KEY_PATH, {?CMD_MOVE, type(Type), #{<<"after">> => type(After)}}, Opts);
|
emqx:update_config(?CONF_KEY_PATH, {?CMD_MOVE, type(Type), ?CMD_MOVE_AFTER(type(After))}, Opts);
|
||||||
move(Type, Position, Opts) ->
|
move(Type, Position, Opts) ->
|
||||||
emqx:update_config(?CONF_KEY_PATH, {?CMD_MOVE, type(Type), Position}, Opts).
|
emqx:update_config(?CONF_KEY_PATH, {?CMD_MOVE, type(Type), Position}, Opts).
|
||||||
|
|
||||||
|
@ -80,17 +80,17 @@ update({delete, Type}, Sources, Opts) ->
|
||||||
update(Cmd, Sources, Opts) ->
|
update(Cmd, Sources, Opts) ->
|
||||||
emqx:update_config(?CONF_KEY_PATH, {Cmd, Sources}, Opts).
|
emqx:update_config(?CONF_KEY_PATH, {Cmd, Sources}, Opts).
|
||||||
|
|
||||||
do_update({?CMD_MOVE, Type, <<"top">>}, Conf) when is_list(Conf) ->
|
do_update({?CMD_MOVE, Type, ?CMD_MOVE_TOP}, Conf) when is_list(Conf) ->
|
||||||
{Source, Front, Rear} = take(Type, Conf),
|
{Source, Front, Rear} = take(Type, Conf),
|
||||||
[Source | Front] ++ Rear;
|
[Source | Front] ++ Rear;
|
||||||
do_update({?CMD_MOVE, Type, <<"bottom">>}, Conf) when is_list(Conf) ->
|
do_update({?CMD_MOVE, Type, ?CMD_MOVE_BOTTOM}, Conf) when is_list(Conf) ->
|
||||||
{Source, Front, Rear} = take(Type, Conf),
|
{Source, Front, Rear} = take(Type, Conf),
|
||||||
Front ++ Rear ++ [Source];
|
Front ++ Rear ++ [Source];
|
||||||
do_update({?CMD_MOVE, Type, #{<<"before">> := Before}}, Conf) when is_list(Conf) ->
|
do_update({?CMD_MOVE, Type, ?CMD_MOVE_BEFORE(Before)}, Conf) when is_list(Conf) ->
|
||||||
{S1, Front1, Rear1} = take(Type, Conf),
|
{S1, Front1, Rear1} = take(Type, Conf),
|
||||||
{S2, Front2, Rear2} = take(Before, Front1 ++ Rear1),
|
{S2, Front2, Rear2} = take(Before, Front1 ++ Rear1),
|
||||||
Front2 ++ [S1, S2] ++ Rear2;
|
Front2 ++ [S1, S2] ++ Rear2;
|
||||||
do_update({?CMD_MOVE, Type, #{<<"after">> := After}}, Conf) when is_list(Conf) ->
|
do_update({?CMD_MOVE, Type, ?CMD_MOVE_AFTER(After)}, Conf) when is_list(Conf) ->
|
||||||
{S1, Front1, Rear1} = take(Type, Conf),
|
{S1, Front1, Rear1} = take(Type, Conf),
|
||||||
{S2, Front2, Rear2} = take(After, Front1 ++ Rear1),
|
{S2, Front2, Rear2} = take(After, Front1 ++ Rear1),
|
||||||
Front2 ++ [S2, S1] ++ Rear2;
|
Front2 ++ [S2, S1] ++ Rear2;
|
||||||
|
|
|
@ -345,9 +345,9 @@ sources(get, _) ->
|
||||||
{200, #{sources => Sources}};
|
{200, #{sources => Sources}};
|
||||||
sources(post, #{body := #{<<"type">> := <<"file">>, <<"rules">> := Rules}}) ->
|
sources(post, #{body := #{<<"type">> := <<"file">>, <<"rules">> := Rules}}) ->
|
||||||
{ok, Filename} = write_file(filename:join([emqx:get_config([node, data_dir]), "acl.conf"]), Rules),
|
{ok, Filename} = write_file(filename:join([emqx:get_config([node, data_dir]), "acl.conf"]), Rules),
|
||||||
update_config(head, [#{<<"type">> => <<"file">>, <<"enable">> => true, <<"path">> => Filename}]);
|
update_config(?CMD_PREPEND, [#{<<"type">> => <<"file">>, <<"enable">> => true, <<"path">> => Filename}]);
|
||||||
sources(post, #{body := Body}) when is_map(Body) ->
|
sources(post, #{body := Body}) when is_map(Body) ->
|
||||||
update_config(head, [write_cert(Body)]);
|
update_config(?CMD_PREPEND, [write_cert(Body)]);
|
||||||
sources(put, #{body := Body}) when is_list(Body) ->
|
sources(put, #{body := Body}) when is_list(Body) ->
|
||||||
NBody = [ begin
|
NBody = [ begin
|
||||||
case Source of
|
case Source of
|
||||||
|
|
Loading…
Reference in New Issue