enhance: レートリミットを0%にできるように
This commit is contained in:
parent
a8feed1eff
commit
9ddf62d8b7
|
@ -13,6 +13,7 @@ You should also include the user name that made the change.
|
||||||
### Improvements
|
### Improvements
|
||||||
- アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化
|
- アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化
|
||||||
- Backend: activitypub情報がcorsでブロックされないようヘッダーを追加
|
- Backend: activitypub情報がcorsでブロックされないようヘッダーを追加
|
||||||
|
- enhance: レートリミットを0%にできるように
|
||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
- Client: ユーザーページでアクティビティを見ることができない問題を修正
|
- Client: ユーザーページでアクティビティを見ることができない問題を修正
|
||||||
|
|
|
@ -227,15 +227,17 @@ export class ApiCallService implements OnApplicationShutdown {
|
||||||
// TODO: 毎リクエスト計算するのもあれだしキャッシュしたい
|
// TODO: 毎リクエスト計算するのもあれだしキャッシュしたい
|
||||||
const factor = user ? (await this.roleService.getUserPolicies(user.id)).rateLimitFactor : 1;
|
const factor = user ? (await this.roleService.getUserPolicies(user.id)).rateLimitFactor : 1;
|
||||||
|
|
||||||
// Rate limit
|
if (factor > 0) {
|
||||||
await this.rateLimiterService.limit(limit as IEndpointMeta['limit'] & { key: NonNullable<string> }, limitActor, factor).catch(err => {
|
// Rate limit
|
||||||
throw new ApiError({
|
await this.rateLimiterService.limit(limit as IEndpointMeta['limit'] & { key: NonNullable<string> }, limitActor, factor).catch(err => {
|
||||||
message: 'Rate limit exceeded. Please try again later.',
|
throw new ApiError({
|
||||||
code: 'RATE_LIMIT_EXCEEDED',
|
message: 'Rate limit exceeded. Please try again later.',
|
||||||
id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef',
|
code: 'RATE_LIMIT_EXCEEDED',
|
||||||
httpStatusCode: 429,
|
id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef',
|
||||||
|
httpStatusCode: 429,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ep.meta.requireCredential || ep.meta.requireModerator || ep.meta.requireAdmin) {
|
if (ep.meta.requireCredential || ep.meta.requireModerator || ep.meta.requireAdmin) {
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
<MkSwitch v-model="policies.rateLimitFactor.useDefault" :readonly="readonly">
|
<MkSwitch v-model="policies.rateLimitFactor.useDefault" :readonly="readonly">
|
||||||
<template #label>{{ i18n.ts._role.useBaseValue }}</template>
|
<template #label>{{ i18n.ts._role.useBaseValue }}</template>
|
||||||
</MkSwitch>
|
</MkSwitch>
|
||||||
<MkRange :model-value="policies.rateLimitFactor.value * 100" :min="30" :max="300" :step="10" :text-converter="(v) => `${v}%`" @update:model-value="v => policies.rateLimitFactor.value = (v / 100)">
|
<MkRange :model-value="policies.rateLimitFactor.value * 100" :min="0" :max="400" :step="10" :text-converter="(v) => `${v}%`" @update:model-value="v => policies.rateLimitFactor.value = (v / 100)">
|
||||||
<template #label>{{ i18n.ts._role._options.rateLimitFactor }}</template>
|
<template #label>{{ i18n.ts._role._options.rateLimitFactor }}</template>
|
||||||
<template #caption>{{ i18n.ts._role._options.descriptionOfRateLimitFactor }}</template>
|
<template #caption>{{ i18n.ts._role._options.descriptionOfRateLimitFactor }}</template>
|
||||||
</MkRange>
|
</MkRange>
|
||||||
|
|
Loading…
Reference in a new issue