diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-10-19 19:29:04 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-10-19 19:29:04 +0900 |
| commit | 87f61e714ad3b17856a6a5ac66051707badb3bd0 (patch) | |
| tree | 353b384f026bb326d16b7194d5fa5dfee7f12069 /src/server/api | |
| parent | 12.48.3 (diff) | |
| download | sharkey-87f61e714ad3b17856a6a5ac66051707badb3bd0.tar.gz sharkey-87f61e714ad3b17856a6a5ac66051707badb3bd0.tar.bz2 sharkey-87f61e714ad3b17856a6a5ac66051707badb3bd0.zip | |
Resolve #6087
Diffstat (limited to 'src/server/api')
| -rw-r--r-- | src/server/api/endpoints/admin/abuse-user-reports.ts | 38 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/resolve-abuse-user-report.ts (renamed from src/server/api/endpoints/admin/remove-abuse-user-report.ts) | 7 | ||||
| -rw-r--r-- | src/server/api/endpoints/users/report-abuse.ts | 10 |
3 files changed, 49 insertions, 6 deletions
diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/src/server/api/endpoints/admin/abuse-user-reports.ts index d5a52184d1..6a7f380e16 100644 --- a/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -23,12 +23,50 @@ export const meta = { untilId: { validator: $.optional.type(ID), }, + + state: { + validator: $.optional.nullable.str, + default: null, + }, + + reporterOrigin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'combined' + }, + + targetUserOrigin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'combined' + }, } }; export default define(meta, async (ps) => { const query = makePaginationQuery(AbuseUserReports.createQueryBuilder('report'), ps.sinceId, ps.untilId); + switch (ps.state) { + case 'resolved': query.andWhere('report.resolved = TRUE'); break; + case 'unresolved': query.andWhere('report.resolved = FALSE'); break; + } + + switch (ps.reporterOrigin) { + case 'local': query.andWhere('report.reporterHost IS NULL'); break; + case 'remote': query.andWhere('report.reporterHost IS NOT NULL'); break; + } + + switch (ps.targetUserOrigin) { + case 'local': query.andWhere('report.targetUserHost IS NULL'); break; + case 'remote': query.andWhere('report.targetUserHost IS NOT NULL'); break; + } + const reports = await query.take(ps.limit!).getMany(); return await AbuseUserReports.packMany(reports); diff --git a/src/server/api/endpoints/admin/remove-abuse-user-report.ts b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts index 150de5f5d4..0a62b5f365 100644 --- a/src/server/api/endpoints/admin/remove-abuse-user-report.ts +++ b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -16,12 +16,15 @@ export const meta = { } }; -export default define(meta, async (ps) => { +export default define(meta, async (ps, me) => { const report = await AbuseUserReports.findOne(ps.reportId); if (report == null) { throw new Error('report not found'); } - await AbuseUserReports.delete(report.id); + await AbuseUserReports.update(report.id, { + resolved: true, + assigneeId: me.id, + }); }); diff --git a/src/server/api/endpoints/users/report-abuse.ts b/src/server/api/endpoints/users/report-abuse.ts index a9b5543f3c..eaa4cd6258 100644 --- a/src/server/api/endpoints/users/report-abuse.ts +++ b/src/server/api/endpoints/users/report-abuse.ts @@ -26,7 +26,7 @@ export const meta = { }, comment: { - validator: $.str.range(1, 3000), + validator: $.str.range(1, 2048), desc: { 'ja-JP': '迷惑行為の詳細' } @@ -72,9 +72,11 @@ export default define(meta, async (ps, me) => { const report = await AbuseUserReports.save({ id: genId(), createdAt: new Date(), - userId: user.id, + targetUserId: user.id, + targetUserHost: user.host, reporterId: me.id, - comment: ps.comment + reporterHost: null, + comment: ps.comment, }); // Publish event to moderators @@ -90,7 +92,7 @@ export default define(meta, async (ps, me) => { for (const moderator of moderators) { publishAdminStream(moderator.id, 'newAbuseUserReport', { id: report.id, - userId: report.userId, + targetUserId: report.targetUserId, reporterId: report.reporterId, comment: report.comment }); |