From 67448469ae727ff8b0bce5faf32424ce164d81a2 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 28 Dec 2020 00:56:45 -0800 Subject: [PATCH] ircd::m::event::append: Add visibility query support w/ option. --- include/ircd/m/event/append.h | 1 + matrix/event_append.cc | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/ircd/m/event/append.h b/include/ircd/m/event/append.h index 351235992..cc8157293 100644 --- a/include/ircd/m/event/append.h +++ b/include/ircd/m/event/append.h @@ -50,6 +50,7 @@ struct ircd::m::event::append::opts bool query_txnid {true}; bool query_prev_state {true}; bool query_redacted {true}; + bool query_visible {false}; }; inline diff --git a/matrix/event_append.cc b/matrix/event_append.cc index 40eb8168b..a5f806786 100644 --- a/matrix/event_append.cc +++ b/matrix/event_append.cc @@ -104,6 +104,18 @@ ircd::m::event::append::append(json::stack::object &object, if(opts.event_filter && !m::match(*opts.event_filter, event)) return false; + if(opts.query_visible && opts.user_id && !visible(event, *opts.user_id)) + { + log::debug + { + log, "Not sending event %s because not visible to %s.", + string_view{event.event_id}, + string_view{*opts.user_id}, + }; + + return false; + } + const bool has_event_idx { opts.event_idx && *opts.event_idx