fix: dashboard change pwd & delete user with destory token

This commit is contained in:
DDDHuang 2022-04-25 11:10:47 +08:00
parent 40560230db
commit 3b13f1dfcc
1 changed files with 25 additions and 11 deletions

View File

@ -117,7 +117,13 @@ remove_user(Username) when is_binary(Username) ->
_ -> mnesia:delete({?ADMIN, Username}) _ -> mnesia:delete({?ADMIN, Username})
end end
end, end,
return(mria:transaction(?DASHBOARD_SHARD, Trans)). case return(mria:transaction(?DASHBOARD_SHARD, Trans)) of
{ok, Result} ->
_ = emqx_dashboard_token:destroy_by_username(Username),
{ok, Result};
{error, Reason} ->
{error, Reason}
end.
-spec(update_user(binary(), binary()) -> {ok, map()} | {error, term()}). -spec(update_user(binary(), binary()) -> {ok, map()} | {error, term()}).
update_user(Username, Desc) when is_binary(Username) -> update_user(Username, Desc) when is_binary(Username) ->
@ -160,12 +166,20 @@ change_password(Username, Password) when is_binary(Username), is_binary(Password
change_password_hash(Username, hash(Password)). change_password_hash(Username, hash(Password)).
change_password_hash(Username, PasswordHash) -> change_password_hash(Username, PasswordHash) ->
update_pwd(Username, fun(User) -> ChangePWD =
fun(User) ->
User#?ADMIN{pwdhash = PasswordHash} User#?ADMIN{pwdhash = PasswordHash}
end). end,
case update_pwd(Username, ChangePWD) of
{ok, Result} ->
_ = emqx_dashboard_token:destroy_by_username(Username),
{ok, Result};
{error, Reason} -> {error, Reason}
end.
update_pwd(Username, Fun) -> update_pwd(Username, Fun) ->
Trans = fun() -> Trans =
fun() ->
User = User =
case lookup_user(Username) of case lookup_user(Username) of
[Admin] -> Admin; [Admin] -> Admin;