Prevent blocked user see friend visible level posts

This commit is contained in:
2024-09-03 20:07:20 +08:00
parent 486bb69977
commit 9207a4f164
2 changed files with 34 additions and 1 deletions

View File

@@ -32,12 +32,17 @@ func FilterPostWithUserContext(tx *gorm.DB, user *models.Account) *gorm.DB {
friendAllowList := lo.Map(friends, func(item models.Account, index int) uint {
return item.ID
})
blocked, _ := ListAccountBlockedUsers(*user)
blockedDisallowList := lo.Map(blocked, func(item models.Account, index int) uint {
return item.ID
})
tx = tx.Where(
"(visibility != ? OR (visibility != ? AND author_id IN ?) OR (visibility = ? AND ?) OR (visibility = ? AND NOT ?) OR author_id = ?)",
"(visibility != ? OR (visibility != ? AND author_id IN ? AND author_id NOT IN ?) OR (visibility = ? AND ?) OR (visibility = ? AND NOT ?) OR author_id = ?)",
NoneVisibility,
FriendsVisibility,
friendAllowList,
blockedDisallowList,
SelectedVisibility,
datatypes.JSONQuery("visible_users").HasKey(strconv.Itoa(int(user.ID))),
FilteredVisibility,