Scope inventory list to own room + shared items for tenants
Tenants could previously see every other tenant's private room inventory including purchase prices. Now matches the app's standard visibility rule: own room + roomId=NULL (shared) items only; landlord/ admin unchanged (see everything).
This commit is contained in:
parent
a8dc999180
commit
0179517979
@ -7,8 +7,10 @@ const prisma = new PrismaClient();
|
||||
/**
|
||||
* Router für die Inventarverwaltung (Möbel & Geräte je Zimmer bzw.
|
||||
* Gemeinschaftsfläche). Anlegen/Ändern/Löschen ist Vermieter/Admin
|
||||
* vorbehalten; die Liste selbst ist für alle eingeloggten Nutzer sichtbar
|
||||
* (z. B. damit Mieter nachschauen können, was zu welchem Zimmer gehört).
|
||||
* vorbehalten. Sichtbarkeit wie überall sonst: Mieter sehen nur Inventar
|
||||
* ihres eigenen Zimmers plus echte Gemeinschaftsgegenstände (roomId NULL),
|
||||
* nicht das private Zimmerinventar (inkl. Kaufpreis) anderer Mieter.
|
||||
* Vermieter/Admin sehen alles.
|
||||
*
|
||||
* Pro Gegenstand können mehrere Fotos hinterlegt werden (photoUrls) — das
|
||||
* Web-Dashboard sendet dafür clientseitig eingelesene Bilder als Data-URLs,
|
||||
@ -39,8 +41,16 @@ function sanitizePhotoUrls(input: unknown): string[] {
|
||||
.map((u) => (u as string).trim());
|
||||
}
|
||||
|
||||
inventoryRouter.get('/inventory', requireAuth, async (_req: AuthedRequest, res: Response) => {
|
||||
inventoryRouter.get('/inventory', requireAuth, async (req: AuthedRequest, res: Response) => {
|
||||
const isLandlord = req.user!.role === 'LANDLORD' || req.user!.role === 'ADMIN';
|
||||
let where = {};
|
||||
if (!isLandlord) {
|
||||
const self = await prisma.user.findUnique({ where: { id: req.user!.id }, select: { roomId: true } });
|
||||
where = { OR: [{ roomId: null }, { roomId: self?.roomId ?? '__none__' }] };
|
||||
}
|
||||
|
||||
const items = await prisma.inventory.findMany({
|
||||
where,
|
||||
orderBy: { createdAt: 'desc' },
|
||||
select: INVENTORY_SELECT,
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user