Merge pull request #8046 from savonarola/fix-authn-user-search-api
fix(authn): fix user search API
This commit is contained in:
commit
26c83f40df
|
@ -204,25 +204,14 @@ emqx_authn_api {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
like_username {
|
like_user_id {
|
||||||
desc {
|
desc {
|
||||||
en: """Fuzzy search username."""
|
en: """Fuzzy search user_id (username or clientid)."""
|
||||||
zh: """使用用户名模糊查询。"""
|
zh: """使用用户 ID (username 或 clientid)模糊查询。"""
|
||||||
}
|
}
|
||||||
label {
|
label {
|
||||||
en: """like_username"""
|
en: """like_user_id"""
|
||||||
zh: """模糊用户名"""
|
zh: """like_user_id"""
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
like_clientid {
|
|
||||||
desc {
|
|
||||||
en: """Fuzzy search clientid."""
|
|
||||||
zh: """使用客户端标识符模糊查询。"""
|
|
||||||
}
|
|
||||||
label {
|
|
||||||
en: """like_clientid"""
|
|
||||||
zh: """模糊用户名"""
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -429,16 +429,10 @@ schema("/authentication/:id/users") ->
|
||||||
param_auth_id(),
|
param_auth_id(),
|
||||||
ref(emqx_dashboard_swagger, page),
|
ref(emqx_dashboard_swagger, page),
|
||||||
ref(emqx_dashboard_swagger, limit),
|
ref(emqx_dashboard_swagger, limit),
|
||||||
{like_username,
|
{like_user_id,
|
||||||
mk(binary(), #{
|
mk(binary(), #{
|
||||||
in => query,
|
in => query,
|
||||||
desc => ?DESC(like_username),
|
desc => ?DESC(like_user_id),
|
||||||
required => false
|
|
||||||
})},
|
|
||||||
{like_clientid,
|
|
||||||
mk(binary(), #{
|
|
||||||
in => query,
|
|
||||||
desc => ?DESC(like_clientid),
|
|
||||||
required => false
|
required => false
|
||||||
})},
|
})},
|
||||||
{is_superuser,
|
{is_superuser,
|
||||||
|
|
|
@ -69,8 +69,7 @@
|
||||||
|
|
||||||
-define(TAB, ?MODULE).
|
-define(TAB, ?MODULE).
|
||||||
-define(AUTHN_QSCHEMA, [
|
-define(AUTHN_QSCHEMA, [
|
||||||
{<<"like_username">>, binary},
|
{<<"like_user_id">>, binary},
|
||||||
{<<"like_clientid">>, binary},
|
|
||||||
{<<"user_group">>, binary},
|
{<<"user_group">>, binary},
|
||||||
{<<"is_superuser">>, atom}
|
{<<"is_superuser">>, atom}
|
||||||
]).
|
]).
|
||||||
|
@ -319,14 +318,9 @@ run_fuzzy_filter(_, []) ->
|
||||||
true;
|
true;
|
||||||
run_fuzzy_filter(
|
run_fuzzy_filter(
|
||||||
E = #user_info{user_id = {_, UserID}},
|
E = #user_info{user_id = {_, UserID}},
|
||||||
[{username, like, UsernameSubStr} | Fuzzy]
|
[{user_id, like, UsernameSubStr} | Fuzzy]
|
||||||
) ->
|
) ->
|
||||||
binary:match(UserID, UsernameSubStr) /= nomatch andalso run_fuzzy_filter(E, Fuzzy);
|
binary:match(UserID, UsernameSubStr) /= nomatch andalso run_fuzzy_filter(E, Fuzzy).
|
||||||
run_fuzzy_filter(
|
|
||||||
E = #user_info{user_id = {_, UserID}},
|
|
||||||
[{clientid, like, ClientIDSubStr} | Fuzzy]
|
|
||||||
) ->
|
|
||||||
binary:match(UserID, ClientIDSubStr) /= nomatch andalso run_fuzzy_filter(E, Fuzzy).
|
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% Internal functions
|
%% Internal functions
|
||||||
|
|
|
@ -218,7 +218,7 @@ t_list_users(_) ->
|
||||||
#{
|
#{
|
||||||
<<"page">> => 1,
|
<<"page">> => 1,
|
||||||
<<"limit">> => 20,
|
<<"limit">> => 20,
|
||||||
<<"like_username">> => <<"3">>
|
<<"like_user_id">> => <<"3">>
|
||||||
},
|
},
|
||||||
State
|
State
|
||||||
).
|
).
|
||||||
|
|
|
@ -77,17 +77,10 @@ emqx_gateway_api_authn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
like_username {
|
like_user_id {
|
||||||
desc {
|
desc {
|
||||||
en: """Fuzzy search by username"""
|
en: """Fuzzy search by user_id (username or clientid)"""
|
||||||
zh: """Username 模糊搜索"""
|
zh: """用户 ID (username 或 clientid)模糊搜索"""
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
like_clientid{
|
|
||||||
desc {
|
|
||||||
en: """Fuzzy search by clientid"""
|
|
||||||
zh: """Client ID 模糊搜索"""
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -194,8 +194,7 @@ parse_qstring(Qs) ->
|
||||||
[
|
[
|
||||||
<<"page">>,
|
<<"page">>,
|
||||||
<<"limit">>,
|
<<"limit">>,
|
||||||
<<"like_username">>,
|
<<"like_user_id">>,
|
||||||
<<"like_clientid">>,
|
|
||||||
<<"is_superuser">>
|
<<"is_superuser">>
|
||||||
],
|
],
|
||||||
Qs
|
Qs
|
||||||
|
@ -379,26 +378,16 @@ params_paging_in_qs() ->
|
||||||
|
|
||||||
params_fuzzy_in_qs() ->
|
params_fuzzy_in_qs() ->
|
||||||
[
|
[
|
||||||
{like_username,
|
{like_user_id,
|
||||||
mk(
|
mk(
|
||||||
binary(),
|
binary(),
|
||||||
#{
|
#{
|
||||||
in => query,
|
in => query,
|
||||||
required => false,
|
required => false,
|
||||||
desc => ?DESC(like_username),
|
desc => ?DESC(like_user_id),
|
||||||
example => <<"username">>
|
example => <<"username">>
|
||||||
}
|
}
|
||||||
)},
|
)},
|
||||||
{like_clientid,
|
|
||||||
mk(
|
|
||||||
binary(),
|
|
||||||
#{
|
|
||||||
in => query,
|
|
||||||
required => false,
|
|
||||||
desc => ?DESC(like_clientid),
|
|
||||||
example => <<"clientid">>
|
|
||||||
}
|
|
||||||
)},
|
|
||||||
{is_superuser,
|
{is_superuser,
|
||||||
mk(
|
mk(
|
||||||
boolean(),
|
boolean(),
|
||||||
|
|
|
@ -491,7 +491,7 @@ t_authn_fuzzy_search(_) ->
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
FuzzyDatas = [[{<<"like_username">>, <<"test">>}], [{<<"is_superuser">>, <<"true">>}]],
|
FuzzyDatas = [[{<<"like_user_id">>, <<"test">>}], [{<<"is_superuser">>, <<"true">>}]],
|
||||||
|
|
||||||
lists:foreach(Create, UserDatas),
|
lists:foreach(Create, UserDatas),
|
||||||
lists:foreach(Checker, lists:zip(UserDatas, FuzzyDatas)),
|
lists:foreach(Checker, lists:zip(UserDatas, FuzzyDatas)),
|
||||||
|
|
Loading…
Reference in New Issue