summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorPikaDude <mail@pikadude.me>2022-06-04 00:14:50 +1000
committerGitHub <noreply@github.com>2022-06-03 23:14:50 +0900
commit6061937996ec90c4d59cab5d199760bc20ffae6e (patch)
treee7dbcf089b4c7db1f25a34b6ac7758d751e1f4bb /packages/backend/src
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadsharkey-6061937996ec90c4d59cab5d199760bc20ffae6e.tar.gz
sharkey-6061937996ec90c4d59cab5d199760bc20ffae6e.tar.bz2
sharkey-6061937996ec90c4d59cab5d199760bc20ffae6e.zip
User moderation details (#8762)
* add more user details for admins to see * fix some issues * small style fix as suggested by Johann150 Co-authored-by: Johann150 <johann@qwertqwefsday.eu> * fix Co-authored-by: Johann150 <johann@qwertqwefsday.eu> Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/show-user.ts42
1 files changed, 37 insertions, 5 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 bf6cc16532..78033aed58 100644
--- a/packages/backend/src/server/api/endpoints/admin/show-user.ts
+++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts
@@ -1,5 +1,5 @@
+import { Signins, UserProfiles, Users } from '@/models/index.js';
import define from '../../define.js';
-import { Users } from '@/models/index.js';
export const meta = {
tags: ['admin'],
@@ -23,9 +23,12 @@ export const paramDef = {
// eslint-disable-next-line import/no-default-export
export default define(meta, paramDef, async (ps, me) => {
- const user = await Users.findOneBy({ id: ps.userId });
+ const [user, profile] = await Promise.all([
+ Users.findOneBy({ id: ps.userId }),
+ UserProfiles.findOneBy({ userId: ps.userId })
+ ]);
- if (user == null) {
+ if (user == null || profile == null) {
throw new Error('user not found');
}
@@ -34,8 +37,37 @@ export default define(meta, paramDef, async (ps, me) => {
throw new Error('cannot show info of admin');
}
+ if (!_me.isAdmin) {
+ return {
+ isModerator: user.isModerator,
+ isSilenced: user.isSilenced,
+ isSuspended: user.isSuspended,
+ };
+ }
+
+ const maskedKeys = ['accessToken', 'accessTokenSecret', 'refreshToken'];
+ Object.keys(profile.integrations).forEach(integration => {
+ maskedKeys.forEach(key => profile.integrations[integration][key] = '<MASKED>');
+ });
+
+ const signins = await Signins.findBy({ userId: user.id });
+
return {
- ...user,
- token: user.token != null ? '<MASKED>' : user.token,
+ email: profile.email,
+ emailVerified: profile.emailVerified,
+ autoAcceptFollowed: profile.autoAcceptFollowed,
+ noCrawle: profile.noCrawle,
+ alwaysMarkNsfw: profile.alwaysMarkNsfw,
+ carefulBot: profile.carefulBot,
+ injectFeaturedNote: profile.injectFeaturedNote,
+ receiveAnnouncementEmail: profile.receiveAnnouncementEmail,
+ integrations: profile.integrations,
+ mutedWords: profile.mutedWords,
+ mutedInstances: profile.mutedInstances,
+ mutingNotificationTypes: profile.mutingNotificationTypes,
+ isModerator: user.isModerator,
+ isSilenced: user.isSilenced,
+ isSuspended: user.isSuspended,
+ signins,
};
});