commit 0b413f30e95976ea1a5715dffe1b27a57fd6ff63
parent 652836bf0995604ec6e17a0f7f222e5ff0669baa
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 24 May 2023 22:39:07 -0700
filter group messages for stream
Diffstat:
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/pkg/database/tableChatRoomGroups.go b/pkg/database/tableChatRoomGroups.go
@@ -34,6 +34,14 @@ func (d *DkfDB) GetUserRoomGroups(userID UserID, roomID RoomID) (out []ChatRoomU
return
}
+func (d *DkfDB) GetUserRoomGroupsIDs(userID UserID, roomID RoomID) (out []GroupID, err error) {
+ err = d.db.Model(&ChatRoomUserGroup{}).
+ Where("user_id = ? AND room_id = ?", userID, roomID).
+ Pluck("group_id", &out).
+ Error
+ return
+}
+
func (d *DkfDB) GetRoomGroupByName(roomID RoomID, groupName string) (out ChatRoomGroup, err error) {
err = d.db.First(&out, "room_id = ? AND name = ?", roomID, groupName).Error
return
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -5073,6 +5073,10 @@ Loop:
msg.User, _ = db.GetUserByID(msg.UserID)
}
if msg.GroupID != nil {
+ userGroupsIDs, _ := db.GetUserRoomGroupsIDs(authUser.ID, msg.RoomID)
+ if !utils.InArr(*msg.GroupID, userGroupsIDs) {
+ continue
+ }
if msg.Group == nil {
group, _ := db.GetRoomGroupByID(msg.RoomID, *msg.GroupID)
msg.Group = &group