summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes/create.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-08-17 21:48:59 +0900
committerGitHub <noreply@github.com>2021-08-17 21:48:59 +0900
commit7015df37e3545d835ecd71cdcd1910fbb16e80da (patch)
tree58fe6dd4352444302dbdadb8a31d540604437495 /src/server/api/endpoints/notes/create.ts
parentFix truncate (#7642) (diff)
downloadsharkey-7015df37e3545d835ecd71cdcd1910fbb16e80da.tar.gz
sharkey-7015df37e3545d835ecd71cdcd1910fbb16e80da.tar.bz2
sharkey-7015df37e3545d835ecd71cdcd1910fbb16e80da.zip
enhance(server): Improve user block (#7640)
* enhance(server): Improve user block * Update CHANGELOG.md * ユーザーリスト対応 * 相手から見れなくなるように * Update 1629004542760-chart-reindex.ts https://github.com/misskey-dev/misskey/commit/2365761ba5445f26c8b66b3b20ef4be44e70d549#commitcomment-54919821 * update test * add test * add todos * Update 1629004542760-chart-reindex.ts
Diffstat (limited to 'src/server/api/endpoints/notes/create.ts')
-rw-r--r--src/server/api/endpoints/notes/create.ts30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts
index ddb5c953ec..9c055683f7 100644
--- a/src/server/api/endpoints/notes/create.ts
+++ b/src/server/api/endpoints/notes/create.ts
@@ -7,7 +7,7 @@ import { fetchMeta } from '@/misc/fetch-meta';
import { ApiError } from '../../error';
import { ID } from '@/misc/cafy-id';
import { User } from '../../../../models/entities/user';
-import { Users, DriveFiles, Notes, Channels } from '../../../../models';
+import { Users, DriveFiles, Notes, Channels, Blockings } from '../../../../models';
import { DriveFile } from '../../../../models/entities/drive-file';
import { Note } from '../../../../models/entities/note';
import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits';
@@ -171,6 +171,12 @@ export const meta = {
code: 'NO_SUCH_CHANNEL',
id: 'b1653923-5453-4edc-b786-7c4f39bb0bbb'
},
+
+ youHaveBeenBlocked: {
+ message: 'You have been blocked by this user.',
+ code: 'YOU_HAVE_BEEN_BLOCKED',
+ id: 'b390d7e1-8a5e-46ed-b625-06271cafd3d3'
+ },
}
};
@@ -202,6 +208,17 @@ export default define(meta, async (ps, user) => {
} else if (renote.renoteId && !renote.text && !renote.fileIds) {
throw new ApiError(meta.errors.cannotReRenote);
}
+
+ // Check blocking
+ if (renote.userId !== user.id) {
+ const block = await Blockings.findOne({
+ blockerId: renote.userId,
+ blockeeId: user.id,
+ });
+ if (block) {
+ throw new ApiError(meta.errors.youHaveBeenBlocked);
+ }
+ }
}
let reply: Note | undefined;
@@ -217,6 +234,17 @@ export default define(meta, async (ps, user) => {
if (reply.renoteId && !reply.text && !reply.fileIds) {
throw new ApiError(meta.errors.cannotReplyToPureRenote);
}
+
+ // Check blocking
+ if (reply.userId !== user.id) {
+ const block = await Blockings.findOne({
+ blockerId: reply.userId,
+ blockeeId: user.id,
+ });
+ if (block) {
+ throw new ApiError(meta.errors.youHaveBeenBlocked);
+ }
+ }
}
if (ps.poll) {