summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin
diff options
context:
space:
mode:
authorMar0xy <marie@kaifa.ch>2023-11-22 23:40:27 +0100
committerMar0xy <marie@kaifa.ch>2023-11-22 23:40:27 +0100
commit42bf8e5e76fb6a6dce804c1784e1e2833268c1e6 (patch)
tree9f82e50010bf1fc287e98ab856ab12857f33d0b0 /packages/backend/src/server/api/endpoints/admin
parentfix: attachments not working on FB import (diff)
parent2023.11.1 (diff)
downloadsharkey-42bf8e5e76fb6a6dce804c1784e1e2833268c1e6.tar.gz
sharkey-42bf8e5e76fb6a6dce804c1784e1e2833268c1e6.tar.bz2
sharkey-42bf8e5e76fb6a6dce804c1784e1e2833268c1e6.zip
merge: upstream
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts61
-rw-r--r--packages/backend/src/server/api/endpoints/admin/meta.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts5
3 files changed, 71 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts
new file mode 100644
index 0000000000..686341582b
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts
@@ -0,0 +1,61 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import type { UserProfilesRepository } from '@/models/_.js';
+import { DI } from '@/di-symbols.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
+import { ApiError } from '@/server/api/error.js';
+
+export const meta = {
+ tags: ['admin'],
+
+ requireCredential: true,
+ requireAdmin: true,
+
+ errors: {
+ userNotFound: {
+ message: 'No such user who has the email address.',
+ code: 'USER_NOT_FOUND',
+ id: 'cb865949-8af5-4062-a88c-ef55e8786d1d',
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ email: { type: 'string' },
+ },
+ required: ['email'],
+} as const;
+
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export
+ constructor(
+ @Inject(DI.userProfilesRepository)
+ private userProfilesRepository: UserProfilesRepository,
+
+ private userEntityService: UserEntityService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const profile = await this.userProfilesRepository.findOne({
+ where: { email: ps.email },
+ relations: ['user'],
+ });
+
+ if (profile == null) {
+ throw new ApiError(meta.errors.userNotFound);
+ }
+
+ const res = await this.userEntityService.pack(profile.user!, null, {
+ detail: true,
+ });
+
+ return res;
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts
index 63491638c8..b1ba1633c9 100644
--- a/packages/backend/src/server/api/endpoints/admin/meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/meta.ts
@@ -307,6 +307,10 @@ export const meta = {
type: 'boolean',
optional: false, nullable: false,
},
+ enableFanoutTimelineDbFallback: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
perLocalUserUserTimelineCacheMax: {
type: 'number',
optional: false, nullable: false,
@@ -440,6 +444,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
policies: { ...DEFAULT_POLICIES, ...instance.policies },
manifestJsonOverride: instance.manifestJsonOverride,
enableFanoutTimeline: instance.enableFanoutTimeline,
+ enableFanoutTimelineDbFallback: instance.enableFanoutTimelineDbFallback,
perLocalUserUserTimelineCacheMax: instance.perLocalUserUserTimelineCacheMax,
perRemoteUserUserTimelineCacheMax: instance.perRemoteUserUserTimelineCacheMax,
perUserHomeTimelineCacheMax: instance.perUserHomeTimelineCacheMax,
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 e58123f2bf..e1a1f3acb3 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -125,6 +125,7 @@ export const paramDef = {
preservedUsernames: { type: 'array', items: { type: 'string' } },
manifestJsonOverride: { type: 'string' },
enableFanoutTimeline: { type: 'boolean' },
+ enableFanoutTimelineDbFallback: { type: 'boolean' },
perLocalUserUserTimelineCacheMax: { type: 'integer' },
perRemoteUserUserTimelineCacheMax: { type: 'integer' },
perUserHomeTimelineCacheMax: { type: 'integer' },
@@ -489,6 +490,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
set.enableFanoutTimeline = ps.enableFanoutTimeline;
}
+ if (ps.enableFanoutTimelineDbFallback !== undefined) {
+ set.enableFanoutTimelineDbFallback = ps.enableFanoutTimelineDbFallback;
+ }
+
if (ps.perLocalUserUserTimelineCacheMax !== undefined) {
set.perLocalUserUserTimelineCacheMax = ps.perLocalUserUserTimelineCacheMax;
}