From fd43d51d9138175d01c2c209477e579ac174f459 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Tue, 14 Jan 2025 17:51:24 +0200 Subject: Fixed a bug where messages from no-access channels will propagate to online users even if they didn't have access --- internal/server/api/api.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'internal/server/api/api.go') diff --git a/internal/server/api/api.go b/internal/server/api/api.go index a19e4dc..4a3c24a 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -82,9 +82,15 @@ func SendMessage(ctx context.Context, sess *session.Session, request *packet.Sen return &ErrInternalError } - return NetworkPropagate(ctx, sess, frequency.NetworkID, &packet.MessagesInfo{ + return NetworkPropagateWithFilter(ctx, sess, frequency.NetworkID, &packet.MessagesInfo{ Messages: []data.Message{message}, RemovedMessages: nil, + }, func(userId snowflake.ID) (pass bool) { + if frequency.Perms != packet.PermNoAccess { + return true + } + isAdmin, _ := IsNetworkAdmin(ctx, queries, userId, frequency.NetworkID) + return isAdmin }) } -- cgit v1.3.1