From 70b85a20fa383fe223fa3e91ecdf2946dbe0c7be Mon Sep 17 00:00:00 2001 From: Moheeb Zara Date: Sat, 1 Aug 2026 21:19:29 -0700 Subject: [PATCH] fix(members): repair broken member-directory visibility gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit member_directory_visibility is the directory_visibility enum (board_only|member_count_visible|members_visible|public_members_visible), but the gate compared against 'board_visible'/'admin_only' — values from other enums that never match — so every setting except members_visible silently restricted the directory, including public_members_visible (meant to be the most open). Map the gate to the real enum values. Co-Authored-By: Claude Opus 4.8 (1M context) --- app/(app)/members/page.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/(app)/members/page.tsx b/app/(app)/members/page.tsx index 1b9e489..c84237b 100644 --- a/app/(app)/members/page.tsx +++ b/app/(app)/members/page.tsx @@ -34,10 +34,17 @@ export default async function MembersPage() { const isAdmin = self.role === 'admin' const isElevated = ELEVATED_ROLES.has(self.role) + // member_directory_visibility is the `directory_visibility` enum. The gate + // previously compared against 'board_visible'/'admin_only' — values from + // OTHER enums that never match — so every setting except 'members_visible' + // silently restricted the directory (including 'public_members_visible', + // which should be the most open). Map to the real enum values: + // - members_visible / public_members_visible: any authenticated member + // - board_only / member_count_visible: only elevated roles see the full list const allowed = visibility === 'members_visible' || - (visibility === 'board_visible' && isElevated) || - (visibility === 'admin_only' && isAdmin) + visibility === 'public_members_visible' || + ((visibility === 'board_only' || visibility === 'member_count_visible') && isElevated) if (!allowed) { return (