From 4ba43d3aeacb54485ea7a29ecdd1680db700cf22 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Fri, 14 Jan 2022 11:37:47 +0800 Subject: [PATCH] fix(auth): move log outside of transaction --- apps/emqx_auth_mnesia/src/emqx_auth_mnesia_cli.erl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_cli.erl b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_cli.erl index 72a932aa1..55e3e4966 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_cli.erl +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia_cli.erl @@ -63,7 +63,12 @@ force_add_user(Login, Password) -> password = encrypted_data(Password), created_at = erlang:system_time(millisecond) }, - ret(mnesia:transaction(fun insert_or_update_user/2, [Password, User])). + case ret(mnesia:transaction(fun insert_or_update_user/2, [Password, User])) of + {ok, override} -> + ?LOG(warning, "[Mnesia] (~p)'s password has be updated.", [Login]), + ok; + Other -> Other + end. insert_or_update_user(NewPwd, User = #emqx_user{login = Login}) -> case mnesia:read(?TABLE, Login) of @@ -72,9 +77,8 @@ insert_or_update_user(NewPwd, User = #emqx_user{login = Login}) -> case emqx_auth_mnesia:match_password(NewPwd, hash_type(), [Pwd]) of true -> ok; false -> - Res = mnesia:write(User), - ?LOG(warning, "[Mnesia] (~p)'s password has be updated.", [Login]), - Res + ok = mnesia:write(User), + {ok, override} end end. @@ -128,7 +132,7 @@ comparing({?TABLE, _, _, CreatedAt1}, {?TABLE, _, _, CreatedAt2}) -> CreatedAt1 >= CreatedAt2. -ret({atomic, ok}) -> ok; +ret({atomic, Res}) -> Res; ret({aborted, Error}) -> {error, Error}. encrypted_data(Password) ->