Просмотр исходного кода

fix(authn): fix user search API

Ilya Averyanov 3 лет назад
Родитель
Сommit
5dba01b8fa

+ 5 - 16
apps/emqx_authn/i18n/emqx_authn_api_i18n.conf

@@ -204,25 +204,14 @@ emqx_authn_api {
     }
   }
 
-  like_username {
+  like_user_id {
     desc {
-      en: """Fuzzy search username."""
-      zh: """使用用户模糊查询。"""
+      en: """Fuzzy search user_id (username or clientid)."""
+      zh: """使用用户 ID (username 或 clientid)模糊查询。"""
     }
     label {
-      en: """like_username"""
-      zh: """模糊用户名"""
-    }
-  }
-
-  like_clientid {
-    desc {
-      en: """Fuzzy search clientid."""
-      zh: """使用客户端标识符模糊查询。"""
-    }
-    label {
-      en: """like_clientid"""
-      zh: """模糊用户名"""
+      en: """like_user_id"""
+      zh: """like_user_id"""
     }
   }
 

+ 2 - 8
apps/emqx_authn/src/emqx_authn_api.erl

@@ -429,16 +429,10 @@ schema("/authentication/:id/users") ->
                 param_auth_id(),
                 ref(emqx_dashboard_swagger, page),
                 ref(emqx_dashboard_swagger, limit),
-                {like_username,
+                {like_user_id,
                     mk(binary(), #{
                         in => query,
-                        desc => ?DESC(like_username),
-                        required => false
-                    })},
-                {like_clientid,
-                    mk(binary(), #{
-                        in => query,
-                        desc => ?DESC(like_clientid),
+                        desc => ?DESC(like_user_id),
                         required => false
                     })},
                 {is_superuser,

+ 3 - 9
apps/emqx_authn/src/simple_authn/emqx_authn_mnesia.erl

@@ -69,8 +69,7 @@
 
 -define(TAB, ?MODULE).
 -define(AUTHN_QSCHEMA, [
-    {<<"like_username">>, binary},
-    {<<"like_clientid">>, binary},
+    {<<"like_user_id">>, binary},
     {<<"user_group">>, binary},
     {<<"is_superuser">>, atom}
 ]).
@@ -319,14 +318,9 @@ run_fuzzy_filter(_, []) ->
     true;
 run_fuzzy_filter(
     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);
-run_fuzzy_filter(
-    E = #user_info{user_id = {_, UserID}},
-    [{clientid, like, ClientIDSubStr} | Fuzzy]
-) ->
-    binary:match(UserID, ClientIDSubStr) /= nomatch andalso run_fuzzy_filter(E, Fuzzy).
+    binary:match(UserID, UsernameSubStr) /= nomatch andalso run_fuzzy_filter(E, Fuzzy).
 
 %%------------------------------------------------------------------------------
 %% Internal functions

+ 1 - 1
apps/emqx_authn/test/emqx_authn_mnesia_SUITE.erl

@@ -218,7 +218,7 @@ t_list_users(_) ->
         #{
             <<"page">> => 1,
             <<"limit">> => 20,
-            <<"like_username">> => <<"3">>
+            <<"like_user_id">> => <<"3">>
         },
         State
     ).

+ 3 - 10
apps/emqx_gateway/i18n/emqx_gateway_api_authn_i18n.conf

@@ -77,17 +77,10 @@ emqx_gateway_api_authn {
         }
     }
 
-    like_username {
+    like_user_id {
         desc {
-            en: """Fuzzy search by username"""
-            zh: """Username 模糊搜索"""
-        }
-    }
-
-    like_clientid{
-        desc {
-            en: """Fuzzy search by clientid"""
-            zh: """Client ID 模糊搜索"""
+            en: """Fuzzy search by user_id (username or clientid)"""
+            zh: """用户 ID (username 或 clientid)模糊搜索"""
         }
     }
 

+ 3 - 14
apps/emqx_gateway/src/emqx_gateway_api_authn.erl

@@ -194,8 +194,7 @@ parse_qstring(Qs) ->
         [
             <<"page">>,
             <<"limit">>,
-            <<"like_username">>,
-            <<"like_clientid">>,
+            <<"like_user_id">>,
             <<"is_superuser">>
         ],
         Qs
@@ -379,26 +378,16 @@ params_paging_in_qs() ->
 
 params_fuzzy_in_qs() ->
     [
-        {like_username,
+        {like_user_id,
             mk(
                 binary(),
                 #{
                     in => query,
                     required => false,
-                    desc => ?DESC(like_username),
+                    desc => ?DESC(like_user_id),
                     example => <<"username">>
                 }
             )},
-        {like_clientid,
-            mk(
-                binary(),
-                #{
-                    in => query,
-                    required => false,
-                    desc => ?DESC(like_clientid),
-                    example => <<"clientid">>
-                }
-            )},
         {is_superuser,
             mk(
                 boolean(),

+ 1 - 1
apps/emqx_gateway/test/emqx_gateway_api_SUITE.erl

@@ -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(Checker, lists:zip(UserDatas, FuzzyDatas)),