summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorCyberRex <hspwinx86@gmail.com>2022-07-05 00:21:01 +0900
committerGitHub <noreply@github.com>2022-07-05 00:21:01 +0900
commitcd07eb222e1990b30cae74b5fab9f12277322ef6 (patch)
tree5fdcbffd59e009ad667d68705e27a77f50065b64 /packages/backend/src/server
parentfix lint @typescript-eslint/ban-types (diff)
downloadsharkey-cd07eb222e1990b30cae74b5fab9f12277322ef6.tar.gz
sharkey-cd07eb222e1990b30cae74b5fab9f12277322ef6.tar.bz2
sharkey-cd07eb222e1990b30cae74b5fab9f12277322ef6.zip
Add additional drive capacity change support (#8867)
* Add additional drive capacity change support * Update packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts Co-authored-by: Johann150 <johann@qwertqwefsday.eu> * :art: * show instance default capacity in placeholder * fix * update api/drive * fix * remove : * fix lint Co-authored-by: Johann150 <johann@qwertqwefsday.eu> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Diffstat (limited to 'packages/backend/src/server')
-rw-r--r--packages/backend/src/server/api/endpoints.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/admin/drive-capacity-override.ts47
-rw-r--r--packages/backend/src/server/api/endpoints/drive.ts2
3 files changed, 50 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts
index 4a2ecebd86..4644f34d94 100644
--- a/packages/backend/src/server/api/endpoints.ts
+++ b/packages/backend/src/server/api/endpoints.ts
@@ -314,6 +314,7 @@ import * as ep___users_search from './endpoints/users/search.js';
import * as ep___users_show from './endpoints/users/show.js';
import * as ep___users_stats from './endpoints/users/stats.js';
import * as ep___fetchRss from './endpoints/fetch-rss.js';
+import * as ep___admin_driveCapOverride from './endpoints/admin/drive-capacity-override.js';
const eps = [
['admin/meta', ep___admin_meta],
@@ -629,6 +630,7 @@ const eps = [
['users/search', ep___users_search],
['users/show', ep___users_show],
['users/stats', ep___users_stats],
+ ['admin/drive-capacity-override', ep___admin_driveCapOverride],
['fetch-rss', ep___fetchRss],
];
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,
};
});