import { createClient } from '@/lib/supabase/server' import { MembersClient } from './members-client' // member_directory_visibility values come from space settings: // admin_only — only admins see the directory // board_visible — admins + board + treasurer see the directory // members_visible — every member of the space sees the directory (default) const ELEVATED_ROLES = new Set(['admin', 'board', 'treasurer']) export default async function MembersPage() { const supabase = await createClient() const { data: { user } } = await supabase.auth.getUser() if (!user) return null const { data: self } = await supabase .from('space_members') .select('space_id, role') .eq('user_id', user.id) .in('status', ['current', 'unverified', 'late']) .single() if (!self) return null const { data: space } = await supabase .from('spaces') .select('member_directory_visibility') .eq('id', self.space_id) .single() const visibility = space?.member_directory_visibility ?? 'members_visible' const isAdmin = self.role === 'admin' const isElevated = ELEVATED_ROLES.has(self.role) const allowed = visibility === 'members_visible' || (visibility === 'board_visible' && isElevated) || (visibility === 'admin_only' && isAdmin) if (!allowed) { return (
The member directory is restricted in this space.
A space admin has set member directory visibility to {visibility}.
Contact an admin if you need access.