fix: user patch with empty email (#578)

This commit is contained in:
boojack 2022-11-25 22:34:24 +08:00 committed by GitHub
parent 88c3b1ad0f
commit b511a7b634
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 7 deletions

View file

@ -199,7 +199,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return echo.NewHTTPError(http.StatusBadRequest, "Malformatted patch user request").SetInternal(err)
}
if userPatch.Email != nil && !common.ValidateEmail(*userPatch.Email) {
if userPatch.Email != nil && *userPatch.Email != "" && !common.ValidateEmail(*userPatch.Email) {
return echo.NewHTTPError(http.StatusBadRequest, "Invalid email format")
}

View file

@ -1,3 +1,4 @@
import { isEqual } from "lodash";
import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { useAppSelector } from "../store";
@ -64,12 +65,19 @@ const UpdateAccountDialog: React.FC<Props> = ({ destroy }: Props) => {
try {
const user = userService.getState().user as User;
await userService.patchUser({
const userPatch: UserPatch = {
id: user.id,
username: state.username,
nickname: state.nickname,
email: state.email,
});
};
if (!isEqual(user.nickname, state.nickname)) {
userPatch.nickname = state.nickname;
}
if (!isEqual(user.username, state.username)) {
userPatch.username = state.username;
}
if (!isEqual(user.email, state.email)) {
userPatch.email = state.email;
}
await userService.patchUser(userPatch);
toastHelper.info("Update succeed");
handleCloseBtnClick();
} catch (error: any) {

View file

@ -76,7 +76,7 @@ const UserBanner = () => {
</div>
<Dropdown
trigger={<Icon.MoreHorizontal className="ml-2 w-5 h-auto cursor-pointer" />}
actionsClassName="!w-36"
actionsClassName="min-w-36"
actions={
<>
{!userService.isVisitorMode() && (