feat(authn_scram): authn_scram users page query

This commit is contained in:
JimMoen 2021-10-21 10:09:54 +08:00 committed by x1001100011
parent c6ea575d35
commit 295b1312be
1 changed files with 7 additions and 9 deletions

View File

@ -38,7 +38,7 @@
, delete_user/2 , delete_user/2
, update_user/3 , update_user/3
, lookup_user/2 , lookup_user/2
, list_users/1 , list_users/2
]). ]).
-define(TAB, ?MODULE). -define(TAB, ?MODULE).
@ -181,23 +181,21 @@ update_user(UserID, User,
salt = Salt} salt = Salt}
end, end,
mnesia:write(?TAB, UserInfo2, write), mnesia:write(?TAB, UserInfo2, write),
{ok, serialize_user_info(UserInfo2)} {ok, format_user_info(UserInfo2)}
end end
end). end).
lookup_user(UserID, #{user_group := UserGroup}) -> lookup_user(UserID, #{user_group := UserGroup}) ->
case mnesia:dirty_read(?TAB, {UserGroup, UserID}) of case mnesia:dirty_read(?TAB, {UserGroup, UserID}) of
[UserInfo] -> [UserInfo] ->
{ok, serialize_user_info(UserInfo)}; {ok, format_user_info(UserInfo)};
[] -> [] ->
{error, not_found} {error, not_found}
end. end.
%% TODO: Support Pagination list_users(PageParams, #{user_group := UserGroup}) ->
list_users(#{user_group := UserGroup}) -> MatchSpec = [{{user_info, {UserGroup, '_'}, '_', '_', '_', '_'}, [], ['$_']}],
Users = [serialize_user_info(UserInfo) || {ok, emqx_mgmt_api:paginate(?TAB, MatchSpec, PageParams, fun format_user_info/1)}.
#user_info{user_id = {UserGroup0, _}} = UserInfo <- ets:tab2list(?TAB), UserGroup0 =:= UserGroup],
{ok, Users}.
%%------------------------------------------------------------------------------ %%------------------------------------------------------------------------------
%% Internal functions %% Internal functions
@ -269,5 +267,5 @@ trans(Fun, Args) ->
{aborted, Reason} -> {error, Reason} {aborted, Reason} -> {error, Reason}
end. end.
serialize_user_info(#user_info{user_id = {_, UserID}, is_superuser = IsSuperuser}) -> format_user_info(#user_info{user_id = {_, UserID}, is_superuser = IsSuperuser}) ->
#{user_id => UserID, is_superuser => IsSuperuser}. #{user_id => UserID, is_superuser => IsSuperuser}.