summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-01-30 17:25:56 +0900
committerGitHub <noreply@github.com>2019-01-30 17:25:56 +0900
commit00b134ce1ecfd2103677c3ed4fdda96c6748d687 (patch)
tree054e190a1ad2df5ec27ed5f18aab2a54d475b1ca /src/server/api
parentFix import (diff)
downloadsharkey-00b134ce1ecfd2103677c3ed4fdda96c6748d687.tar.gz
sharkey-00b134ce1ecfd2103677c3ed4fdda96c6748d687.tar.bz2
sharkey-00b134ce1ecfd2103677c3ed4fdda96c6748d687.zip
Introduce silence (#4043)
* Introduce silence * Fix icon
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/admin/silence-user.ts49
-rw-r--r--src/server/api/endpoints/admin/unsilence-user.ts45
2 files changed, 94 insertions, 0 deletions
diff --git a/src/server/api/endpoints/admin/silence-user.ts b/src/server/api/endpoints/admin/silence-user.ts
new file mode 100644
index 0000000000..7b1090a895
--- /dev/null
+++ b/src/server/api/endpoints/admin/silence-user.ts
@@ -0,0 +1,49 @@
+import $ from 'cafy';
+import ID, { transform } from '../../../../misc/cafy-id';
+import define from '../../define';
+import User from '../../../../models/user';
+
+export const meta = {
+ desc: {
+ 'ja-JP': '指定したユーザーをサイレンスにします。',
+ 'en-US': 'Make silence a user.'
+ },
+
+ requireCredential: true,
+ requireModerator: true,
+
+ params: {
+ userId: {
+ validator: $.type(ID),
+ transform: transform,
+ desc: {
+ 'ja-JP': '対象のユーザーID',
+ 'en-US': 'The user ID which you want to make silence'
+ }
+ },
+ }
+};
+
+export default define(meta, (ps) => new Promise(async (res, rej) => {
+ const user = await User.findOne({
+ _id: ps.userId
+ });
+
+ if (user == null) {
+ return rej('user not found');
+ }
+
+ if (user.isAdmin) {
+ return rej('cannot silence admin');
+ }
+
+ await User.findOneAndUpdate({
+ _id: user._id
+ }, {
+ $set: {
+ isSilenced: true
+ }
+ });
+
+ res();
+}));
diff --git a/src/server/api/endpoints/admin/unsilence-user.ts b/src/server/api/endpoints/admin/unsilence-user.ts
new file mode 100644
index 0000000000..a01bfbb6d2
--- /dev/null
+++ b/src/server/api/endpoints/admin/unsilence-user.ts
@@ -0,0 +1,45 @@
+import $ from 'cafy';
+import ID, { transform } from '../../../../misc/cafy-id';
+import define from '../../define';
+import User from '../../../../models/user';
+
+export const meta = {
+ desc: {
+ 'ja-JP': '指定したユーザーのサイレンスを解除します。',
+ 'en-US': 'Unsilence a user.'
+ },
+
+ requireCredential: true,
+ requireModerator: true,
+
+ params: {
+ userId: {
+ validator: $.type(ID),
+ transform: transform,
+ desc: {
+ 'ja-JP': '対象のユーザーID',
+ 'en-US': 'The user ID which you want to unsilence'
+ }
+ },
+ }
+};
+
+export default define(meta, (ps) => new Promise(async (res, rej) => {
+ const user = await User.findOne({
+ _id: ps.userId
+ });
+
+ if (user == null) {
+ return rej('user not found');
+ }
+
+ await User.findOneAndUpdate({
+ _id: user._id
+ }, {
+ $set: {
+ isSilenced: false
+ }
+ });
+
+ res();
+}));