summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin
diff options
context:
space:
mode:
authorAcid Chicken (硫酸鶏) <root@acid-chicken.com>2023-03-24 23:25:56 +0900
committerAcid Chicken (硫酸鶏) <root@acid-chicken.com>2023-03-24 23:25:56 +0900
commit723cff0205751856a6d85dcede450c45d124b872 (patch)
tree26206b0fc670159899fd4f389d2baeefa0640e56 /packages/backend/src/server/api/endpoints/admin
parentdocs: note about Storybook (diff)
parentNew Crowdin updates (#10404) (diff)
downloadmisskey-723cff0205751856a6d85dcede450c45d124b872.tar.gz
misskey-723cff0205751856a6d85dcede450c45d124b872.tar.bz2
misskey-723cff0205751856a6d85dcede450c45d124b872.zip
Merge branch 'develop' of https://github.com/misskey-dev/misskey into storybook
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/update.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/admin/meta.ts11
-rw-r--r--packages/backend/src/server/api/endpoints/admin/queue/promote.ts52
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts15
4 files changed, 81 insertions, 10 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts
index dad0e3ef86..bc0475e05c 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts
@@ -1,5 +1,5 @@
import { Inject, Injectable } from '@nestjs/common';
-import { DataSource } from 'typeorm';
+import { DataSource, IsNull } from 'typeorm';
import { Endpoint } from '@/server/api/endpoint-base.js';
import type { EmojisRepository } from '@/models/index.js';
import { DI } from '@/di-symbols.js';
@@ -19,6 +19,11 @@ export const meta = {
code: 'NO_SUCH_EMOJI',
id: '684dec9d-a8c2-4364-9aa8-456c49cb1dc8',
},
+ sameNameEmojiExists: {
+ message: 'Emoji that have same name already exists.',
+ code: 'SAME_NAME_EMOJI_EXISTS',
+ id: '7180fe9d-1ee3-bff9-647d-fe9896d2ffb8',
+ },
},
} as const;
@@ -26,7 +31,7 @@ export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },
- name: { type: 'string' },
+ name: { type: 'string', pattern: '^[a-zA-Z0-9_]+$' },
category: {
type: 'string',
nullable: true,
@@ -57,9 +62,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
) {
super(meta, paramDef, async (ps, me) => {
const emoji = await this.emojisRepository.findOneBy({ id: ps.id });
-
+ const sameNameEmoji = await this.emojisRepository.findOneBy({ name: ps.name, host: IsNull() });
if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji);
-
+ if (sameNameEmoji != null && sameNameEmoji.id !== ps.id) throw new ApiError(meta.errors.sameNameEmojiExists);
await this.emojisRepository.update(emoji.id, {
updatedAt: new Date(),
name: ps.name,
diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts
index ce7e0d569d..fc318a621a 100644
--- a/packages/backend/src/server/api/endpoints/admin/meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/meta.ts
@@ -239,6 +239,14 @@ export const meta = {
type: 'boolean',
optional: true, nullable: false,
},
+ enableChartsForRemoteUser: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ enableChartsForFederatedInstances: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
policies: {
type: 'object',
optional: false, nullable: false,
@@ -299,7 +307,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
enableServiceWorker: instance.enableServiceWorker,
translatorAvailable: instance.deeplAuthKey != null,
cacheRemoteFiles: instance.cacheRemoteFiles,
- useStarForReactionFallback: instance.useStarForReactionFallback,
pinnedUsers: instance.pinnedUsers,
hiddenTags: instance.hiddenTags,
blockedHosts: instance.blockedHosts,
@@ -337,6 +344,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
deeplIsPro: instance.deeplIsPro,
enableIpLogging: instance.enableIpLogging,
enableActiveEmailValidation: instance.enableActiveEmailValidation,
+ enableChartsForRemoteUser: instance.enableChartsForRemoteUser,
+ enableChartsForFederatedInstances: instance.enableChartsForFederatedInstances,
policies: { ...DEFAULT_POLICIES, ...instance.policies },
};
});
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/promote.ts b/packages/backend/src/server/api/endpoints/admin/queue/promote.ts
new file mode 100644
index 0000000000..4e57e6613e
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/queue/promote.ts
@@ -0,0 +1,52 @@
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { QueueService } from '@/core/QueueService.js';
+
+export const meta = {
+ tags: ['admin'],
+
+ requireCredential: true,
+ requireModerator: true,
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ type: { type: 'string', enum: ['deliver', 'inbox'] },
+ },
+ required: ['type'],
+} as const;
+
+// eslint-disable-next-line import/no-default-export
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ private moderationLogService: ModerationLogService,
+ private queueService: QueueService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ let delayedQueues;
+
+ switch (ps.type) {
+ case 'deliver':
+ delayedQueues = await this.queueService.deliverQueue.getDelayed();
+ for (let queueIndex = 0; queueIndex < delayedQueues.length; queueIndex++) {
+ const queue = delayedQueues[queueIndex];
+ await queue.promote();
+ }
+ break;
+
+ case 'inbox':
+ delayedQueues = await this.queueService.inboxQueue.getDelayed();
+ for (let queueIndex = 0; queueIndex < delayedQueues.length; queueIndex++) {
+ const queue = delayedQueues[queueIndex];
+ await queue.promote();
+ }
+ break;
+ }
+
+ this.moderationLogService.insertModerationLog(me, 'promoteQueue');
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
index 2f23aca243..11de29bf83 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -17,7 +17,6 @@ export const paramDef = {
type: 'object',
properties: {
disableRegistration: { type: 'boolean', nullable: true },
- useStarForReactionFallback: { type: 'boolean', nullable: true },
pinnedUsers: { type: 'array', nullable: true, items: {
type: 'string',
} },
@@ -93,6 +92,8 @@ export const paramDef = {
objectStorageS3ForcePathStyle: { type: 'boolean' },
enableIpLogging: { type: 'boolean' },
enableActiveEmailValidation: { type: 'boolean' },
+ enableChartsForRemoteUser: { type: 'boolean' },
+ enableChartsForFederatedInstances: { type: 'boolean' },
},
required: [],
} as const;
@@ -114,10 +115,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
set.disableRegistration = ps.disableRegistration;
}
- if (typeof ps.useStarForReactionFallback === 'boolean') {
- set.useStarForReactionFallback = ps.useStarForReactionFallback;
- }
-
if (Array.isArray(ps.pinnedUsers)) {
set.pinnedUsers = ps.pinnedUsers.filter(Boolean);
}
@@ -382,6 +379,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
set.enableActiveEmailValidation = ps.enableActiveEmailValidation;
}
+ if (ps.enableChartsForRemoteUser !== undefined) {
+ set.enableChartsForRemoteUser = ps.enableChartsForRemoteUser;
+ }
+
+ if (ps.enableChartsForFederatedInstances !== undefined) {
+ set.enableChartsForFederatedInstances = ps.enableChartsForFederatedInstances;
+ }
+
await this.metaService.update(set);
this.moderationLogService.insertModerationLog(me, 'updateMeta');
});