diff --git a/model/user.go b/model/user.go index a54351c7..2ca0d6a4 100644 --- a/model/user.go +++ b/model/user.go @@ -19,8 +19,7 @@ type User struct { Email string `json:"email" gorm:"index" validate:"max=50"` GitHubId string `json:"github_id" gorm:"column:github_id;index"` WeChatId string `json:"wechat_id" gorm:"column:wechat_id;index"` - VerificationCode string `json:"verification_code" gorm:"-:all"` // this field is only for Email verification, don't save it to database! - Balance int `json:"balance" gorm:"type:int;default:0"` + VerificationCode string `json:"verification_code" gorm:"-:all"` // this field is only for Email verification, don't save it to database! AccessToken string `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management Quota int `json:"quota" gorm:"type:int;default:0"` } diff --git a/web/src/pages/User/EditUser.js b/web/src/pages/User/EditUser.js index a8d4e7cf..d6fdbdfb 100644 --- a/web/src/pages/User/EditUser.js +++ b/web/src/pages/User/EditUser.js @@ -14,8 +14,9 @@ const EditUser = () => { github_id: '', wechat_id: '', email: '', + quota: 0, }); - const { username, display_name, password, github_id, wechat_id, email } = + const { username, display_name, password, github_id, wechat_id, email, quota } = inputs; const handleInputChange = (e, { name, value }) => { setInputs((inputs) => ({ ...inputs, [name]: value })); @@ -44,7 +45,11 @@ const EditUser = () => { const submit = async () => { let res = undefined; if (userId) { - res = await API.put(`/api/user/`, { ...inputs, id: parseInt(userId) }); + let data = { ...inputs, id: parseInt(userId) }; + if (typeof data.quota === 'string') { + data.quota = parseInt(data.quota); + } + res = await API.put(`/api/user/`, data); } else { res = await API.put(`/api/user/self`, inputs); } @@ -92,6 +97,21 @@ const EditUser = () => { autoComplete='new-password' /> + { + userId && ( + + + + ) + }