From 188d876b1c52c6b3abaac02703107357f6806025 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 15 Mar 2022 17:50:59 +0800 Subject: [PATCH] fix(api): fix unmatched position parsing --- apps/emqx_authz/src/emqx_authz_api_sources.erl | 10 +++++----- apps/emqx_management/src/emqx_mgmt_api_plugins.erl | 8 ++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/emqx_authz/src/emqx_authz_api_sources.erl b/apps/emqx_authz/src/emqx_authz_api_sources.erl index 0b4b98bd6..5a0dfac1c 100644 --- a/apps/emqx_authz/src/emqx_authz_api_sources.erl +++ b/apps/emqx_authz/src/emqx_authz_api_sources.erl @@ -506,16 +506,16 @@ parse_position(<<"front">>) -> {ok, ?CMD_MOVE_FRONT}; parse_position(<<"rear">>) -> {ok, ?CMD_MOVE_REAR}; +parse_position(<<"before:">>) -> + {error, <<"Invalid parameter. Cannot be placed before an empty target">>}; +parse_position(<<"after:">>) -> + {error, <<"Invalid parameter. Cannot be placed after an empty target">>}; parse_position(<<"before:", Before/binary>>) -> {ok, ?CMD_MOVE_BEFORE(Before)}; parse_position(<<"after:", After/binary>>) -> {ok, ?CMD_MOVE_AFTER(After)}; -parse_position(<<"before:">>) -> - {error, {invalid_parameter, position}}; -parse_position(<<"after:">>) -> - {error, {invalid_parameter, position}}; parse_position(_) -> - {error, {invalid_parameter, position}}. + {error, <<"Invalid parameter. Unknow position">>}. position_example() -> #{ front => diff --git a/apps/emqx_management/src/emqx_mgmt_api_plugins.erl b/apps/emqx_management/src/emqx_mgmt_api_plugins.erl index d806c309e..468d7c931 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_plugins.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_plugins.erl @@ -353,9 +353,13 @@ return(_, {error, Reason}) -> parse_position(#{<<"position">> := <<"front">>}, _) -> front; parse_position(#{<<"position">> := <<"rear">>}, _) -> rear; parse_position(#{<<"position">> := <<"before:", Name/binary>>}, Name) -> - {error, <<"Can't before:self">>}; + {error, <<"Invalid parameter. Cannot be placed before itself">>}; parse_position(#{<<"position">> := <<"after:", Name/binary>>}, Name) -> - {error, <<"Can't after:self">>}; + {error, <<"Invalid parameter. Cannot be placed after itself">>}; +parse_position(#{<<"position">> := <<"before:">>}, _Name) -> + {error, <<"Invalid parameter. Cannot be placed before an empty target">>}; +parse_position(#{<<"position">> := <<"after:">>}, _Name) -> + {error, <<"Invalid parameter. Cannot be placed after an empty target">>}; parse_position(#{<<"position">> := <<"before:", Before/binary>>}, _Name) -> {before, binary_to_list(Before)}; parse_position(#{<<"position">> := <<"after:", After/binary>>}, _Name) ->