Resolve #3238
This commit is contained in:
		| @@ -4,6 +4,7 @@ import { detectUrlMine } from '../../../../../misc/detect-url-mine'; | ||||
| import { Emojis } from '../../../../../models'; | ||||
| import { genId } from '../../../../../misc/gen-id'; | ||||
| import { getConnection } from 'typeorm'; | ||||
| import { insertModerationLog } from '../../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -31,7 +32,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const type = await detectUrlMine(ps.url); | ||||
|  | ||||
| 	const emoji = await Emojis.save({ | ||||
| @@ -46,6 +47,10 @@ export default define(meta, async (ps) => { | ||||
|  | ||||
| 	await getConnection().queryResultCache!.remove(['meta_emojis']); | ||||
|  | ||||
| 	insertModerationLog(me, 'addEmoji', { | ||||
| 		emojiId: emoji.id | ||||
| 	}); | ||||
|  | ||||
| 	return { | ||||
| 		id: emoji.id | ||||
| 	}; | ||||
|   | ||||
| @@ -3,6 +3,7 @@ import define from '../../../define'; | ||||
| import { ID } from '../../../../../misc/cafy-id'; | ||||
| import { Emojis } from '../../../../../models'; | ||||
| import { getConnection } from 'typeorm'; | ||||
| import { insertModerationLog } from '../../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -21,7 +22,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const emoji = await Emojis.findOne(ps.id); | ||||
|  | ||||
| 	if (emoji == null) throw new Error('emoji not found'); | ||||
| @@ -29,4 +30,8 @@ export default define(meta, async (ps) => { | ||||
| 	await Emojis.delete(emoji.id); | ||||
|  | ||||
| 	await getConnection().queryResultCache!.remove(['meta_emojis']); | ||||
|  | ||||
| 	insertModerationLog(me, 'removeEmoji', { | ||||
| 		emoji: emoji | ||||
| 	}); | ||||
| }); | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| import define from '../../../define'; | ||||
| import { destroy } from '../../../../../queue'; | ||||
| import { insertModerationLog } from '../../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	tags: ['admin'], | ||||
| @@ -10,8 +11,8 @@ export const meta = { | ||||
| 	params: {} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	destroy(); | ||||
|  | ||||
| 	return; | ||||
| 	insertModerationLog(me, 'clearQueue'); | ||||
| }); | ||||
|   | ||||
							
								
								
									
										35
									
								
								src/server/api/endpoints/admin/show-moderation-logs.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/server/api/endpoints/admin/show-moderation-logs.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| import $ from 'cafy'; | ||||
| import { ID } from '../../../../misc/cafy-id'; | ||||
| import define from '../../define'; | ||||
| import { ModerationLogs } from '../../../../models'; | ||||
| import { makePaginationQuery } from '../../common/make-pagination-query'; | ||||
|  | ||||
| export const meta = { | ||||
| 	tags: ['admin'], | ||||
|  | ||||
| 	requireCredential: true, | ||||
| 	requireModerator: true, | ||||
|  | ||||
| 	params: { | ||||
| 		limit: { | ||||
| 			validator: $.optional.num.range(1, 100), | ||||
| 			default: 10 | ||||
| 		}, | ||||
|  | ||||
| 		sinceId: { | ||||
| 			validator: $.optional.type(ID), | ||||
| 		}, | ||||
|  | ||||
| 		untilId: { | ||||
| 			validator: $.optional.type(ID), | ||||
| 		}, | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| 	const query = makePaginationQuery(ModerationLogs.createQueryBuilder('report'), ps.sinceId, ps.untilId); | ||||
|  | ||||
| 	const reports = await query.take(ps.limit!).getMany(); | ||||
|  | ||||
| 	return await ModerationLogs.packMany(reports); | ||||
| }); | ||||
| @@ -2,6 +2,7 @@ import $ from 'cafy'; | ||||
| import { ID } from '../../../../misc/cafy-id'; | ||||
| import define from '../../define'; | ||||
| import { Users } from '../../../../models'; | ||||
| import { insertModerationLog } from '../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -25,7 +26,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const user = await Users.findOne(ps.userId as string); | ||||
|  | ||||
| 	if (user == null) { | ||||
| @@ -39,4 +40,8 @@ export default define(meta, async (ps) => { | ||||
| 	await Users.update(user.id, { | ||||
| 		isSilenced: true | ||||
| 	}); | ||||
|  | ||||
| 	insertModerationLog(me, 'silence', { | ||||
| 		targetId: user.id, | ||||
| 	}); | ||||
| }); | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import define from '../../define'; | ||||
| import deleteFollowing from '../../../../services/following/delete'; | ||||
| import { Users, Followings } from '../../../../models'; | ||||
| import { User } from '../../../../models/entities/user'; | ||||
| import { insertModerationLog } from '../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -27,7 +28,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const user = await Users.findOne(ps.userId as string); | ||||
|  | ||||
| 	if (user == null) { | ||||
| @@ -46,6 +47,10 @@ export default define(meta, async (ps) => { | ||||
| 		isSuspended: true | ||||
| 	}); | ||||
|  | ||||
| 	insertModerationLog(me, 'suspend', { | ||||
| 		targetId: user.id, | ||||
| 	}); | ||||
|  | ||||
| 	unFollowAll(user); | ||||
| }); | ||||
|  | ||||
|   | ||||
| @@ -2,6 +2,7 @@ import $ from 'cafy'; | ||||
| import { ID } from '../../../../misc/cafy-id'; | ||||
| import define from '../../define'; | ||||
| import { Users } from '../../../../models'; | ||||
| import { insertModerationLog } from '../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -25,7 +26,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const user = await Users.findOne(ps.userId as string); | ||||
|  | ||||
| 	if (user == null) { | ||||
| @@ -35,4 +36,8 @@ export default define(meta, async (ps) => { | ||||
| 	await Users.update(user.id, { | ||||
| 		isSilenced: false | ||||
| 	}); | ||||
|  | ||||
| 	insertModerationLog(me, 'unsilence', { | ||||
| 		targetId: user.id, | ||||
| 	}); | ||||
| }); | ||||
|   | ||||
| @@ -2,6 +2,7 @@ import $ from 'cafy'; | ||||
| import { ID } from '../../../../misc/cafy-id'; | ||||
| import define from '../../define'; | ||||
| import { Users } from '../../../../models'; | ||||
| import { insertModerationLog } from '../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -25,7 +26,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const user = await Users.findOne(ps.userId as string); | ||||
|  | ||||
| 	if (user == null) { | ||||
| @@ -35,4 +36,8 @@ export default define(meta, async (ps) => { | ||||
| 	await Users.update(user.id, { | ||||
| 		isSuspended: false | ||||
| 	}); | ||||
|  | ||||
| 	insertModerationLog(me, 'unsuspend', { | ||||
| 		targetId: user.id, | ||||
| 	}); | ||||
| }); | ||||
|   | ||||
| @@ -2,6 +2,7 @@ import $ from 'cafy'; | ||||
| import define from '../../define'; | ||||
| import { getConnection } from 'typeorm'; | ||||
| import { Meta } from '../../../../models/entities/meta'; | ||||
| import { insertModerationLog } from '../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	desc: { | ||||
| @@ -401,7 +402,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const set = {} as Partial<Meta>; | ||||
|  | ||||
| 	if (ps.announcements) { | ||||
| @@ -653,4 +654,6 @@ export default define(meta, async (ps) => { | ||||
| 			await transactionalEntityManager.save(Meta, set); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	insertModerationLog(me, 'updateMeta'); | ||||
| }); | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| import $ from 'cafy'; | ||||
| import define from '../../define'; | ||||
| import { getConnection } from 'typeorm'; | ||||
| import { insertModerationLog } from '../../../../services/insert-moderation-log'; | ||||
|  | ||||
| export const meta = { | ||||
| 	tags: ['admin'], | ||||
| @@ -18,7 +19,7 @@ export const meta = { | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default define(meta, async (ps) => { | ||||
| export default define(meta, async (ps, me) => { | ||||
| 	const params: string[] = []; | ||||
|  | ||||
| 	if (ps.full) { | ||||
| @@ -30,4 +31,6 @@ export default define(meta, async (ps) => { | ||||
| 	} | ||||
|  | ||||
| 	getConnection().query('VACUUM ' + params.join(' ')); | ||||
|  | ||||
| 	insertModerationLog(me, 'vacuum', ps); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo