From 324a036aa89df21a3025ddad40f8c4be896b7272 Mon Sep 17 00:00:00 2001 From: DDDHuang <904897578@qq.com> Date: Thu, 12 Aug 2021 10:23:28 +0800 Subject: [PATCH 1/2] fix: users api path & params name --- .../emqx_dashboard/src/emqx_dashboard_api.erl | 67 +++++++++---------- .../test/emqx_dashboard_SUITE.erl | 2 +- apps/emqx_management/src/emqx_mgmt_http.erl | 3 +- 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/apps/emqx_dashboard/src/emqx_dashboard_api.erl b/apps/emqx_dashboard/src/emqx_dashboard_api.erl index b518232af..a56df7ec3 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_api.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_api.erl @@ -97,6 +97,14 @@ users_api() -> responses => #{ <<"200">> => response_array_schema(<<"">>, show_user) } + }, + post => #{ + description => <<"Create dashboard users">>, + 'requestBody' => request_body_schema(create_user), + responses => #{ + <<"200">> => response_schema(<<"Create Users successfully">>), + <<"400">> => bad_request() + } } }, {"/users", Metadata, users}. @@ -117,7 +125,7 @@ user_api() -> 'requestBody' => request_body_schema(#{ type => object, properties => #{ - tags => #{ + tag => #{ type => string } } @@ -126,15 +134,6 @@ user_api() -> <<"200">> => response_schema(<<"Update Users successfully">>), <<"400">> => bad_request() } - }, - post => #{ - description => <<"Create dashboard users">>, - parameters => [path_param_username()], - 'requestBody' => request_body_schema(create_user), - responses => #{ - <<"200">> => response_schema(<<"Create Users successfully">>), - <<"400">> => bad_request() - } } }, {"/users/:username", Metadata, user}. @@ -161,7 +160,7 @@ change_pwd_api() -> } } }, - {"/change_pwd/:username", Metadata, change_pwd}. + {"/users/:username/change_pwd", Metadata, change_pwd}. path_param_username() -> #{ @@ -187,14 +186,32 @@ auth(post, Request) -> end. users(get, _Request) -> - {200, [row(User) || User <- emqx_dashboard_admin:all_users()]}. + {200, [row(User) || User <- emqx_dashboard_admin:all_users()]}; + +users(post, Request) -> + {ok, Body, _} = cowboy_req:read_body(Request), + Params = emqx_json:decode(Body, [return_maps]), + Tag = maps:get(<<"tag">>, Params), + Username = maps:get(<<"username">>, Params), + Password = maps:get(<<"password">>, Params), + case ?EMPTY(Username) orelse ?EMPTY(Password) of + true -> + {400, #{code => <<"CREATE_USER_FAIL">>, + message => <<"Username or password undefined">>}}; + false -> + case emqx_dashboard_admin:add_user(Username, Password, Tag) of + ok -> {200}; + {error, Reason} -> + {400, #{code => <<"CREATE_USER_FAIL">>, message => Reason}} + end + end. user(put, Request) -> Username = cowboy_req:binding(username, Request), {ok, Body, _} = cowboy_req:read_body(Request), Params = emqx_json:decode(Body, [return_maps]), - Tags = maps:get(<<"tags">>, Params), - case emqx_dashboard_admin:update_user(Username, Tags) of + Tag = maps:get(<<"tag">>, Params), + case emqx_dashboard_admin:update_user(Username, Tag) of ok -> {200}; {error, Reason} -> {400, #{code => <<"UPDATE_FAIL">>, message => Reason}} @@ -208,24 +225,6 @@ user(delete, Request) -> false -> _ = emqx_dashboard_admin:remove_user(Username), {200} - end; - -user(post, Request) -> - {ok, Body, _} = cowboy_req:read_body(Request), - Params = emqx_json:decode(Body, [return_maps]), - Tags = maps:get(<<"tags">>, Params), - Username = maps:get(<<"username">>, Params), - Password = maps:get(<<"password">>, Params), - case ?EMPTY(Username) orelse ?EMPTY(Password) of - true -> - {400, #{code => <<"CREATE_USER_FAIL">>, - message => <<"Username or password undefined">>}}; - false -> - case emqx_dashboard_admin:add_user(Username, Password, Tags) of - ok -> {200}; - {error, Reason} -> - {400, #{code => <<"CREATE_USER_FAIL">>, message => Reason}} - end end. change_pwd(put, Request) -> @@ -240,8 +239,8 @@ change_pwd(put, Request) -> {400, #{code => <<"CHANGE_PWD_FAIL">>, message => Reason}} end. -row(#mqtt_admin{username = Username, tags = Tags}) -> - #{username => Username, tags => Tags}. +row(#mqtt_admin{username = Username, tags = Tag}) -> + #{username => Username, tag => Tag}. bad_request() -> response_schema(<<"Bad Request">>, diff --git a/apps/emqx_dashboard/test/emqx_dashboard_SUITE.erl b/apps/emqx_dashboard/test/emqx_dashboard_SUITE.erl index 1ffb6786e..da51a2418 100644 --- a/apps/emqx_dashboard/test/emqx_dashboard_SUITE.erl +++ b/apps/emqx_dashboard/test/emqx_dashboard_SUITE.erl @@ -96,7 +96,7 @@ t_rest_api(_Config) -> , http_post("users", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>}) , http_post("auth", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>}) , http_delete("users/usera") - , http_put("change_pwd/admin", #{<<"old_pwd">> => <<"public">>, <<"new_pwd">> => <<"newpwd">>}) + , http_put("users/admin/change_pwd", #{<<"old_pwd">> => <<"public">>, <<"new_pwd">> => <<"newpwd">>}) , http_post("auth", #{<<"username">> => <<"admin">>, <<"password">> => <<"newpwd">>}) ]], ok. diff --git a/apps/emqx_management/src/emqx_mgmt_http.erl b/apps/emqx_management/src/emqx_mgmt_http.erl index c795e1de7..ba34d4802 100644 --- a/apps/emqx_management/src/emqx_mgmt_http.erl +++ b/apps/emqx_management/src/emqx_mgmt_http.erl @@ -118,7 +118,8 @@ format({Addr, Port}) when is_tuple(Addr) -> io_lib:format("~s:~w", [inet:ntoa(Addr), Port]). apps() -> - Apps = [App || {App, _, _} <- application:loaded_applications(), App =/= emqx_dashboard], + % Apps = [App || {App, _, _} <- application:loaded_applications(), App =/= emqx_dashboard], + Apps = [App || {App, _, _} <- application:loaded_applications()], lists:filter(fun(App) -> case re:run(atom_to_list(App), "^emqx") of {match,[{0,4}]} -> true; From 8efe854f63454833bf0b69ae9e06ff07236c2483 Mon Sep 17 00:00:00 2001 From: DDDHuang <904897578@qq.com> Date: Thu, 12 Aug 2021 10:24:46 +0800 Subject: [PATCH 2/2] fix: remove test code --- apps/emqx_management/src/emqx_mgmt_http.erl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/emqx_management/src/emqx_mgmt_http.erl b/apps/emqx_management/src/emqx_mgmt_http.erl index ba34d4802..c795e1de7 100644 --- a/apps/emqx_management/src/emqx_mgmt_http.erl +++ b/apps/emqx_management/src/emqx_mgmt_http.erl @@ -118,8 +118,7 @@ format({Addr, Port}) when is_tuple(Addr) -> io_lib:format("~s:~w", [inet:ntoa(Addr), Port]). apps() -> - % Apps = [App || {App, _, _} <- application:loaded_applications(), App =/= emqx_dashboard], - Apps = [App || {App, _, _} <- application:loaded_applications()], + Apps = [App || {App, _, _} <- application:loaded_applications(), App =/= emqx_dashboard], lists:filter(fun(App) -> case re:run(atom_to_list(App), "^emqx") of {match,[{0,4}]} -> true;