summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin/show-user.ts
diff options
context:
space:
mode:
authorzyoshoka <107108195+zyoshoka@users.noreply.github.com>2024-02-16 14:27:33 +0900
committerGitHub <noreply@github.com>2024-02-16 14:27:33 +0900
commit40bbae3d6c200afb8ed9a70ca20ef03ebaed4e57 (patch)
tree784a5253038a4e014334291454564dd0cab0b089 /packages/backend/src/server/api/endpoints/admin/show-user.ts
parentfeat(backend): likeOnlyなどでハートにフォールバックする際異... (diff)
downloadsharkey-40bbae3d6c200afb8ed9a70ca20ef03ebaed4e57.tar.gz
sharkey-40bbae3d6c200afb8ed9a70ca20ef03ebaed4e57.tar.bz2
sharkey-40bbae3d6c200afb8ed9a70ca20ef03ebaed4e57.zip
fix(backend): add missing schemas and fix incorrect schemas (#13295)
* fix(backend): add missing schemas and fix incorrect schemas * fix: ci * fix: ci (本命) * fix: run `pnpm build-misskey-js-with-types` * fix: typos * fix: role-condition-formula-value contains `id` * fix: incorrect schema
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin/show-user.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/show-user.ts154
1 files changed, 153 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts
index ecb5f347af..5a1c05f41a 100644
--- a/packages/backend/src/server/api/endpoints/admin/show-user.ts
+++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts
@@ -10,6 +10,7 @@ import { DI } from '@/di-symbols.js';
import { RoleService } from '@/core/RoleService.js';
import { RoleEntityService } from '@/core/entities/RoleEntityService.js';
import { IdService } from '@/core/IdService.js';
+import { notificationRecieveConfig } from '@/models/json-schema/user.js';
export const meta = {
tags: ['admin'],
@@ -21,6 +22,157 @@ export const meta = {
res: {
type: 'object',
nullable: false, optional: false,
+ properties: {
+ email: {
+ type: 'string',
+ optional: false, nullable: true,
+ },
+ emailVerified: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ autoAcceptFollowed: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ noCrawle: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ preventAiLearning: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ alwaysMarkNsfw: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ autoSensitive: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ carefulBot: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ injectFeaturedNote: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ receiveAnnouncementEmail: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ mutedWords: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ anyOf: [
+ {
+ type: 'string',
+ },
+ {
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ },
+ ],
+ },
+ },
+ mutedInstances: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ type: 'string',
+ },
+ },
+ notificationRecieveConfig: {
+ type: 'object',
+ optional: false, nullable: false,
+ properties: {
+ note: { optional: true, ...notificationRecieveConfig },
+ follow: { optional: true, ...notificationRecieveConfig },
+ mention: { optional: true, ...notificationRecieveConfig },
+ reply: { optional: true, ...notificationRecieveConfig },
+ renote: { optional: true, ...notificationRecieveConfig },
+ quote: { optional: true, ...notificationRecieveConfig },
+ reaction: { optional: true, ...notificationRecieveConfig },
+ pollEnded: { optional: true, ...notificationRecieveConfig },
+ receiveFollowRequest: { optional: true, ...notificationRecieveConfig },
+ followRequestAccepted: { optional: true, ...notificationRecieveConfig },
+ roleAssigned: { optional: true, ...notificationRecieveConfig },
+ achievementEarned: { optional: true, ...notificationRecieveConfig },
+ app: { optional: true, ...notificationRecieveConfig },
+ test: { optional: true, ...notificationRecieveConfig },
+ },
+ },
+ isModerator: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ isSilenced: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ isSuspended: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ isHibernated: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ lastActiveDate: {
+ type: 'string',
+ optional: false, nullable: true,
+ },
+ moderationNote: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ signins: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ ref: 'Signin',
+ },
+ },
+ policies: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'RolePolicies',
+ },
+ roles: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ type: 'object',
+ ref: 'Role',
+ },
+ },
+ roleAssigns: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ type: 'object',
+ properties: {
+ createdAt: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ expiresAt: {
+ type: 'string',
+ optional: false, nullable: true,
+ },
+ roleId: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ },
+ },
+ },
+ },
},
} as const;
@@ -89,7 +241,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
isSilenced: isSilenced,
isSuspended: user.isSuspended,
isHibernated: user.isHibernated,
- lastActiveDate: user.lastActiveDate,
+ lastActiveDate: user.lastActiveDate ? user.lastActiveDate.toISOString() : null,
moderationNote: profile.moderationNote ?? '',
signins,
policies: await this.roleService.getUserPolicies(user.id),