Scrum4Me/lib/product-access.ts
Madhura68 29ed4f2773 feat: show active product name in navbar, links to product page
Sub-layout sets product in Zustand store; NavBar reads it.
getAccessibleProduct wrapped with React cache to avoid double DB call.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 17:56:50 +02:00

19 lines
478 B
TypeScript

import { cache } from 'react'
import { prisma } from '@/lib/prisma'
const accessFilter = (userId: string) => ({
OR: [
{ user_id: userId },
{ members: { some: { user_id: userId } } },
],
})
export const getAccessibleProduct = cache(async (productId: string, userId: string) => {
return prisma.product.findFirst({
where: { id: productId, ...accessFilter(userId) },
})
})
export function productAccessFilter(userId: string) {
return accessFilter(userId)
}