refactor: deprecate int32 (#7025)

* refactor: deprecate int32

* fix(db): reject legacy user quota schemas at startup

* fix(quota): enforce wallet bounds and saturating billing conversions

* fix(rate-limit): keep count*duration from wrapping int64

* fix: error message
This commit is contained in:
Seefs
2026-08-26 20:57:54 +08:00
committed by GitHub
parent 2d8e50bf36
commit a073f74b38
35 changed files with 445 additions and 116 deletions
+21
View File
@@ -159,3 +159,24 @@ func TestManageUserDeleteReturnsImmediatelyAndUnknownActionFails(t *testing.T) {
assert.EqualValues(t, 1, unchanged.AuthVersion)
assert.Equal(t, common.UserStatusEnabled, unchanged.Status)
}
func TestManageUserQuotaRespectsWalletCeiling(t *testing.T) {
db := setupManageUserTestDB(t)
user := model.User{
Username: "managed-quota-user", Password: "password", Role: common.RoleCommonUser,
Status: common.UserStatusEnabled, Group: "default", Quota: common.MaxWalletQuota - 1,
}
require.NoError(t, db.Create(&user).Error)
recorder := performManageUserRequest(t, fmt.Sprintf(`{"id":%d,"action":"add_quota","mode":"add","value":2}`, user.Id))
assert.Contains(t, recorder.Body.String(), `"success":false`)
var updated model.User
require.NoError(t, db.First(&updated, user.Id).Error)
assert.Equal(t, common.MaxWalletQuota-1, updated.Quota)
recorder = performManageUserRequest(t, fmt.Sprintf(`{"id":%d,"action":"add_quota","mode":"override","value":%d}`, user.Id, common.MaxWalletQuota+1))
assert.Contains(t, recorder.Body.String(), `"success":false`)
require.NoError(t, db.First(&updated, user.Id).Error)
assert.Equal(t, common.MaxWalletQuota-1, updated.Quota)
}