diff options
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/roster.py')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/roster.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/roster.py b/packages/meshbay-node/src/meshbay_node/roster.py index b7fbf8e..b0ca78b 100644 --- a/packages/meshbay-node/src/meshbay_node/roster.py +++ b/packages/meshbay-node/src/meshbay_node/roster.py @@ -889,6 +889,24 @@ class Roster: "1" if enabled else "0", set_by) return enabled + # ── Search ────────────────────────────────────────────────────────────── + + # Whether this group's files appear in members' cross-group Search. Not an + # access control: a member lists the group by opening it, and a client that + # ignores this lists it in Search too. Unset means listed, because that is + # what every group did before this existed. + SETTING_SEARCH_LISTED = "search_listed" + + async def search_listed(self, group_id: str) -> bool: + value = await self.get_setting(group_id, self.SETTING_SEARCH_LISTED, "1") + return value != "0" + + async def set_search_listed(self, group_id: str, listed: bool, + set_by: str = "") -> bool: + await self.set_setting(group_id, self.SETTING_SEARCH_LISTED, + "1" if listed else "0", set_by) + return listed + # Whether TMDB lookups run for this group at all — per-group, unlike the # token/language above: one node process can share a real media library # group and several test/demo groups, and outbound TMDB traffic (and API |