Resolve #6087
This commit is contained in:
@@ -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);
|
||||
|
@@ -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,
|
||||
});
|
||||
});
|
@@ -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
|
||||
});
|
||||
|
Reference in New Issue
Block a user