feat(admin): make user rate limits configurable via admin UI

Add rate_limit_settings table and corresponding admin permissions
Replace static user rate limits with dynamic in-memory counters
Add interface in admin panel to configure rate limit policies
This commit is contained in:
2026-05-03 22:11:41 +08:00
parent b0e2464c24
commit deb0b54e71
7 changed files with 491 additions and 153 deletions

View File

@@ -838,6 +838,17 @@ export const systemWordingMessages = {
aiModerationApiKeyMissing: 'API Key missing',
aiModerationClearApiKey: 'Clear saved API Key',
aiModerationSettings: 'AI moderation settings',
rateLimits: 'Rate limits',
rateLimitMaxRequests: 'Max requests',
rateLimitWindowMinutes: 'Window minutes',
rateLimitCooldownSeconds: 'Cooldown seconds',
rateLimitAccountWrite: 'Account writes',
rateLimitAdminWrite: 'Management writes',
rateLimitWikiWrite: 'Wiki content writes',
rateLimitCommunityWrite: 'Community writes',
rateLimitCommunityReaction: 'Community reactions',
rateLimitUpload: 'Uploads',
rateLimitFetch: 'Pokemon fetch',
wordingLocale: 'Locale',
wordingModule: 'Module',
wordingSurface: 'Surface',
@@ -1913,6 +1924,17 @@ export const systemWordingMessages = {
aiModerationApiKeyMissing: 'API Key 未配置',
aiModerationClearApiKey: '清除已保存 API Key',
aiModerationSettings: 'AI 审核设置',
rateLimits: '限流',
rateLimitMaxRequests: '最大请求数',
rateLimitWindowMinutes: '窗口分钟数',
rateLimitCooldownSeconds: '冷却秒数',
rateLimitAccountWrite: '账号写入',
rateLimitAdminWrite: '管理写入',
rateLimitWikiWrite: 'Wiki 内容写入',
rateLimitCommunityWrite: '社区写入',
rateLimitCommunityReaction: '社区 Reaction',
rateLimitUpload: '上传',
rateLimitFetch: 'Pokemon Fetch',
wordingLocale: '语言',
wordingModule: '模块',
wordingSurface: '端',