diff --git a/object/syncer_util.go b/object/syncer_util.go index f88af418..7ce86a03 100644 --- a/object/syncer_util.go +++ b/object/syncer_util.go @@ -169,6 +169,12 @@ func (syncer *Syncer) setUserByKeyValue(user *User, key string, value string) { user.TotpSecret = value case "SignupApplication": user.SignupApplication = value + case "MfaPhoneEnabled": + user.MfaPhoneEnabled = util.ParseBool(value) + case "MfaEmailEnabled": + user.MfaEmailEnabled = util.ParseBool(value) + case "RecoveryCodes": + user.RecoveryCodes = strings.Split(value, ",") } } @@ -303,6 +309,9 @@ func (syncer *Syncer) getMapFromOriginalUser(user *OriginalUser) map[string]stri m["PreferredMfaType"] = user.PreferredMfaType m["TotpSecret"] = user.TotpSecret m["SignupApplication"] = user.SignupApplication + m["MfaPhoneEnabled"] = util.BoolToString(user.MfaPhoneEnabled) + m["MfaEmailEnabled"] = util.BoolToString(user.MfaEmailEnabled) + m["RecoveryCodes"] = strings.Join(user.RecoveryCodes, ",") m2 := map[string]string{} for _, tableColumn := range syncer.TableColumns { diff --git a/web/src/Setting.js b/web/src/Setting.js index 180f8a8c..9852e899 100644 --- a/web/src/Setting.js +++ b/web/src/Setting.js @@ -1468,7 +1468,7 @@ export function getUserCommonFields() { return ["Owner", "Name", "CreatedTime", "UpdatedTime", "DeletedTime", "Id", "Type", "Password", "PasswordSalt", "DisplayName", "FirstName", "LastName", "Avatar", "PermanentAvatar", "Email", "EmailVerified", "Phone", "Location", "Address", "Affiliation", "Title", "IdCardType", "IdCard", "Homepage", "Bio", "Tag", "Region", "Language", "Gender", "Birthday", "Education", "Score", "Ranking", "IsDefaultAvatar", "IsOnline", "IsAdmin", "IsForbidden", "IsDeleted", "CreatedIp", - "PreferredMfaType", "TotpSecret", "SignupApplication"]; + "PreferredMfaType", "TotpSecret", "SignupApplication", "RecoveryCodes", "MfaPhoneEnabled", "MfaEmailEnabled"]; } export function getDefaultFooterContent() {