🐛 Fix user has no publisher will causing filtering by visibility error
This commit is contained in:
parent
6228c186d7
commit
fd31120312
@ -168,8 +168,34 @@ func FilterPostWithUserContext(c *fiber.Ctx, tx *gorm.DB, user *authm.Account) *
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(self) == 0 && len(allowlist) == 0 {
|
||||||
tx = tx.Where(
|
tx = tx.Where(
|
||||||
"(publisher_id IN ? OR visibility = ? "+
|
"(visibility = ? OR"+
|
||||||
|
"(visibility = ? AND ?) OR "+
|
||||||
|
"(visibility = ? AND NOT ?))",
|
||||||
|
AllVisibility,
|
||||||
|
SelectedVisibility,
|
||||||
|
datatypes.JSONQuery("visible_users").HasKey(strconv.Itoa(int(user.ID))),
|
||||||
|
FilteredVisibility,
|
||||||
|
datatypes.JSONQuery("invisible_users").HasKey(strconv.Itoa(int(user.ID))),
|
||||||
|
)
|
||||||
|
} else if len(self) == 0 {
|
||||||
|
tx = tx.Where(
|
||||||
|
"(visibility = ? OR"+
|
||||||
|
"(visibility = ? AND publisher_id IN ?) OR "+
|
||||||
|
"(visibility = ? AND ?) OR "+
|
||||||
|
"(visibility = ? AND NOT ?))",
|
||||||
|
AllVisibility,
|
||||||
|
FriendsVisibility,
|
||||||
|
allowlist,
|
||||||
|
SelectedVisibility,
|
||||||
|
datatypes.JSONQuery("visible_users").HasKey(strconv.Itoa(int(user.ID))),
|
||||||
|
FilteredVisibility,
|
||||||
|
datatypes.JSONQuery("invisible_users").HasKey(strconv.Itoa(int(user.ID))),
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
tx = tx.Where(
|
||||||
|
"(publisher_id IN ? OR visibility = ? OR"+
|
||||||
"(visibility = ? AND publisher_id IN ?) OR "+
|
"(visibility = ? AND publisher_id IN ?) OR "+
|
||||||
"(visibility = ? AND ?) OR "+
|
"(visibility = ? AND ?) OR "+
|
||||||
"(visibility = ? AND NOT ?))",
|
"(visibility = ? AND NOT ?))",
|
||||||
@ -182,6 +208,7 @@ func FilterPostWithUserContext(c *fiber.Ctx, tx *gorm.DB, user *authm.Account) *
|
|||||||
FilteredVisibility,
|
FilteredVisibility,
|
||||||
datatypes.JSONQuery("invisible_users").HasKey(strconv.Itoa(int(user.ID))),
|
datatypes.JSONQuery("invisible_users").HasKey(strconv.Itoa(int(user.ID))),
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if len(invisibleList) > 0 {
|
if len(invisibleList) > 0 {
|
||||||
tx = tx.Where("publisher_id NOT IN ?", invisibleList)
|
tx = tx.Where("publisher_id NOT IN ?", invisibleList)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user