diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2022-07-04 15:26:21 +0000 |
|---|---|---|
| committer | tamaina <tamaina@hotmail.co.jp> | 2022-07-04 15:26:21 +0000 |
| commit | 2fe4a51d26bd2b5429528b8773ace408b44b4092 (patch) | |
| tree | 91cbe02f75ccf2b82bdda4bca90c84aba9e5d195 /packages/backend/src/server/api/endpoints | |
| parent | update CHANGELOG.md (diff) | |
| parent | Add additional drive capacity change support (#8867) (diff) | |
| download | misskey-2fe4a51d26bd2b5429528b8773ace408b44b4092.tar.gz misskey-2fe4a51d26bd2b5429528b8773ace408b44b4092.tar.bz2 misskey-2fe4a51d26bd2b5429528b8773ace408b44b4092.zip | |
Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop
Diffstat (limited to 'packages/backend/src/server/api/endpoints')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts | 47 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/drive.ts | 2 |
2 files changed, 48 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts b/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts new file mode 100644 index 0000000000..a4b29770e1 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts @@ -0,0 +1,47 @@ +import define from '../../define.js'; +import { Users } from '@/models/index.js'; +import { User } from '@/models/entities/user.js'; +import { insertModerationLog } from '@/services/insert-moderation-log.js'; +export const meta = { + tags: ['admin'], + + requireCredential: true, + requireModerator: true, +} as const; + +export const paramDef = { + type: 'object', + properties: { + userId: { type: 'string', format: 'misskey:id' }, + overrideMb: { type: 'number', nullable: true }, + }, + required: ['userId', 'overrideMb'], +} as const; + +// eslint-disable-next-line import/no-default-export +export default define(meta, paramDef, async (ps, me) => { + const user = await Users.findOneBy({ id: ps.userId }); + + if (user == null) { + throw new Error('user not found'); + } + + if (!Users.isLocalUser(user)) { + throw new Error('user is not local user'); + } + + /*if (user.isAdmin) { + throw new Error('cannot suspend admin'); + } + if (user.isModerator) { + throw new Error('cannot suspend moderator'); + }*/ + + await Users.update(user.id, { + driveCapacityOverrideMb: ps.overrideMb, + }); + + insertModerationLog(me, 'change-drive-capacity-override', { + targetId: user.id, + }); +}); diff --git a/packages/backend/src/server/api/endpoints/drive.ts b/packages/backend/src/server/api/endpoints/drive.ts index 47e940cddd..82497adefa 100644 --- a/packages/backend/src/server/api/endpoints/drive.ts +++ b/packages/backend/src/server/api/endpoints/drive.ts @@ -39,7 +39,7 @@ export default define(meta, paramDef, async (ps, user) => { const usage = await DriveFiles.calcDriveUsageOf(user.id); return { - capacity: 1024 * 1024 * instance.localDriveCapacityMb, + capacity: 1024 * 1024 * (user.driveCapacityOverrideMb || instance.localDriveCapacityMb), usage: usage, }; }); |