Skip to content

Commit

Permalink
Change: Only moderators can show blocked user's post
Browse files Browse the repository at this point in the history
  • Loading branch information
atsu1125 committed Nov 20, 2022
1 parent 8dfe33f commit f03ac44
Show file tree
Hide file tree
Showing 14 changed files with 42 additions and 8 deletions.
2 changes: 2 additions & 0 deletions packages/backend/src/server/api/common/inject-featured.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ export async function injectFeatured(timeline: Note[], user?: User | null) {
query.andWhere('note.userId != :userId', { userId: user.id });

generateMutedUserQuery(query, user);
if (!user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}

const reactionQuery = NoteReactions.createQueryBuilder('reaction')
.select('reaction.noteId')
Expand Down
4 changes: 3 additions & 1 deletion packages/backend/src/server/api/endpoints/notes/children.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ export default define(meta, async (ps, user) => {

generateVisibilityQuery(query, user);
if (user) generateMutedUserQuery(query, user);
if (user) generateBlockedUserQuery(query, user);
if (user && !user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}
if (user) generateMutedInstanceQuery(query, user);

const notes = await query.take(ps.limit!).getMany();
Expand Down
4 changes: 3 additions & 1 deletion packages/backend/src/server/api/endpoints/notes/featured.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ export default define(meta, async (ps, user) => {
.leftJoinAndSelect('renote.user', 'renoteUser');

if (user) generateMutedUserQuery(query, user);
if (user) generateBlockedUserQuery(query, user);
if (user && !user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}

let notes = await query
.orderBy('note.score', 'DESC')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ export default define(meta, async (ps, user) => {
if (user) generateMutedNoteQuery(query, user);
if (user) generateMutedInstanceQuery(query, user);

if (user && !user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}

if (ps.withFiles) {
query.andWhere('note.fileIds != \'{}\'');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,10 @@ export default define(meta, async (ps, user) => {
generateMutedUserQuery(query, user);
generateMutedInstanceQuery(query, user);
generateMutedNoteQuery(query, user);
generateBlockedUserQuery(query, user);

if (!user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}

if (ps.includeMyRenotes === false) {
query.andWhere(new Brackets(qb => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ export default define(meta, async (ps, user) => {
if (user) generateMutedUserQuery(query, user);
if (user) generateMutedNoteQuery(query, user);

if (user && !user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}

if (ps.withFiles) {
query.andWhere('note.fileIds != \'{}\'');
}
Expand Down
4 changes: 3 additions & 1 deletion packages/backend/src/server/api/endpoints/notes/renotes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default define(meta, async (ps, user) => {

generateVisibilityQuery(query, user);
if (user) generateMutedUserQuery(query, user);
if (user) generateBlockedUserQuery(query, user);
if (user && !user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, me);
}

const renotes = await query.take(ps.limit!).getMany();

Expand Down
4 changes: 3 additions & 1 deletion packages/backend/src/server/api/endpoints/notes/replies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ export default define(meta, async (ps, user) => {

generateVisibilityQuery(query, user);
if (user) generateMutedUserQuery(query, user);
if (user) generateBlockedUserQuery(query, user);
if (user && !user.isAdmin && !user.isModerator) {
generateBlockedUserQuery(query, user);
}

const timeline = await query.take(ps.limit!).getMany();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ export default define(meta, async (ps, me) => {

generateVisibilityQuery(query, me);
if (me) generateMutedUserQuery(query, me);
if (me) generateBlockedUserQuery(query, me);
if (me && !me.isAdmin && !me.isModerator) {
generateBlockedUserQuery(query, me);
}

try {
if (ps.tag) {
Expand Down
4 changes: 3 additions & 1 deletion packages/backend/src/server/api/endpoints/notes/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ export default define(meta, async (ps, me) => {

generateVisibilityQuery(query, me);
if (me) generateMutedUserQuery(query, me);
if (me) generateBlockedUserQuery(query, me);
if (me && !me.isAdmin && !me.isModerator) {
generateBlockedUserQuery(query, me);
}

const notes = await query.take(ps.limit!).getMany();

Expand Down
4 changes: 4 additions & 0 deletions packages/backend/src/server/api/endpoints/users/notes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,10 @@ export default define(meta, async (ps, me) => {
if (me) generateMutedUserQuery(query, me, user);
if (me) generateMutedInstanceQuery(query, me);

if (me && !me.isAdmin && !me.isModerator) {
generateBlockedUserQuery(query, me);
}

if (ps.withFiles) {
query.andWhere('note.fileIds != \'{}\'');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ export default class extends Channel {
// 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (isMutedUserRelated(note, this.muting)) return;

// 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する
if (!this.user.isAdmin && !this.user.isModerator && isBlockerUserRelated(note, this.blocking)) return;

// 流れてきたNoteがミュートすべきNoteだったら無視する
// TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある)
// 現状では、ワードミュートにおけるMutedNoteレコードの追加処理はストリーミングに流す処理と並列で行われるため、
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export default class extends Channel {
// 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (isMutedUserRelated(note, this.muting)) return;
// 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する
if (isBlockerUserRelated(note, this.blocking)) return;
if (!this.user.isAdmin && !this.user.isModerator && isBlockerUserRelated(note, this.blocking)) return;

// 流れてきたNoteがミュートすべきNoteだったら無視する
// TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ export default class extends Channel {

// 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (isMutedUserRelated(note, this.muting)) return;
// 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する
if (!this.user.isAdmin && !this.user.isModerator && isBlockerUserRelated(note, this.blocking)) return;

// 流れてきたNoteがミュートすべきNoteだったら無視する
// TODO: 将来的には、単にMutedNoteテーブルにレコードがあるかどうかで判定したい(以下の理由により難しそうではある)
Expand Down

0 comments on commit f03ac44

Please sign in to comment.