diff options
| author | Aya Morisawa <AyaMorisawa4869@gmail.com> | 2019-01-27 16:41:30 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-27 16:41:30 +0900 |
| commit | 1af1638e2bf12198a74e077e4613b3dc5068ec8c (patch) | |
| tree | bb4d986d520586b0c9cd2c4157c32e7d3627f980 /src/server/api/endpoints | |
| parent | Add multiline math syntax (diff) | |
| parent | Fix test (diff) | |
| download | misskey-1af1638e2bf12198a74e077e4613b3dc5068ec8c.tar.gz misskey-1af1638e2bf12198a74e077e4613b3dc5068ec8c.tar.bz2 misskey-1af1638e2bf12198a74e077e4613b3dc5068ec8c.zip | |
Merge branch 'develop' into math-block
Diffstat (limited to 'src/server/api/endpoints')
| -rw-r--r-- | src/server/api/endpoints/admin/update-remote-user.ts | 36 | ||||
| -rw-r--r-- | src/server/api/endpoints/users/report-abuse.ts | 22 |
2 files changed, 57 insertions, 1 deletions
diff --git a/src/server/api/endpoints/admin/update-remote-user.ts b/src/server/api/endpoints/admin/update-remote-user.ts new file mode 100644 index 0000000000..9288ce1fb7 --- /dev/null +++ b/src/server/api/endpoints/admin/update-remote-user.ts @@ -0,0 +1,36 @@ +import * as mongo from 'mongodb'; +import $ from 'cafy'; +import ID, { transform } from '../../../../misc/cafy-id'; +import define from '../../define'; +import { getRemoteUser } from '../../common/getters'; +import { updatePerson } from '../../../../remote/activitypub/models/person'; + +export const meta = { + desc: { + 'ja-JP': '指定されたリモートユーザーの情報を更新します。', + 'en-US': 'Update specified remote user information.' + }, + + requireCredential: true, + requireModerator: true, + + params: { + userId: { + validator: $.type(ID), + transform: transform, + desc: { + 'ja-JP': '対象のユーザーID', + 'en-US': 'The user ID which you want to update' + } + }, + } +}; + +export default define(meta, (ps) => new Promise((res, rej) => { + updatePersonById(ps.userId).then(() => res(), e => rej(e)); +})); + +async function updatePersonById(userId: mongo.ObjectID) { + const user = await getRemoteUser(userId); + await updatePerson(user.uri); +} diff --git a/src/server/api/endpoints/users/report-abuse.ts b/src/server/api/endpoints/users/report-abuse.ts index b520b29e23..19beee4330 100644 --- a/src/server/api/endpoints/users/report-abuse.ts +++ b/src/server/api/endpoints/users/report-abuse.ts @@ -2,6 +2,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../misc/cafy-id'; import define from '../../define'; import User from '../../../../models/user'; import AbuseUserReport from '../../../../models/abuse-user-report'; +import { publishAdminStream } from '../../../../stream'; export const meta = { desc: { @@ -47,12 +48,31 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => { return rej('cannot report admin'); } - await AbuseUserReport.insert({ + const report = await AbuseUserReport.insert({ createdAt: new Date(), userId: user._id, reporterId: me._id, comment: ps.comment }); + // Publish event to moderators + setTimeout(async () => { + const moderators = await User.find({ + $or: [{ + isAdmin: true + }, { + isModerator: true + }] + }); + for (const moderator of moderators) { + publishAdminStream(moderator._id, 'newAbuseUserReport', { + id: report._id, + userId: report.userId, + reporterId: report.reporterId, + comment: report.comment + }); + } + }, 1); + res(); })); |