From 23c18c487507fe8915f5fcdaa791140348decded Mon Sep 17 00:00:00 2001 From: Akhil Meka Date: Fri, 16 May 2025 17:55:43 +0530 Subject: [PATCH] let client view notifications --- src/notification/notification.controller.ts | 5 +---- src/notification/notification.service.ts | 10 ++++++++-- src/utils/roles.ts | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/notification/notification.controller.ts b/src/notification/notification.controller.ts index 1e66408..908067c 100644 --- a/src/notification/notification.controller.ts +++ b/src/notification/notification.controller.ts @@ -32,10 +32,7 @@ export async function listNotificationsHandler( const queryParams = req.query as PageQueryParams; try { - const notificationList = await listNotifications( - queryParams, - req.user.tenantId - ); + const notificationList = await listNotifications(queryParams, req.user); return res.code(200).send(notificationList); } catch (err) { return err; diff --git a/src/notification/notification.service.ts b/src/notification/notification.service.ts index c393b70..a578157 100644 --- a/src/notification/notification.service.ts +++ b/src/notification/notification.service.ts @@ -1,3 +1,5 @@ +import mongoose from "mongoose"; +import { AuthenticatedUser } from "../auth"; import { orgModel } from "../organization/organization.schema"; import { getFilterObject, getSortObject, PageQueryParams } from "../pagination"; import { userModel } from "../user/user.schema"; @@ -44,16 +46,20 @@ export async function updateNotification( export async function listNotifications( params: PageQueryParams, - tenantId: string + user: AuthenticatedUser ) { const page = params.page || 1; const pageSize = params.pageSize || 10; const sortObj = getSortObject(params, notificationFields); const filterObj = getFilterObject(params) || []; + if (user.role == "client") { + filterObj.push({ client: new mongoose.Types.ObjectId(user.orgId) }); + } + const pipeline: any = [ { - $match: { $and: [{ tenantId: tenantId }, ...filterObj] }, + $match: { $and: [{ tenantId: user.tenantId }, ...filterObj] }, }, ]; diff --git a/src/utils/roles.ts b/src/utils/roles.ts index 3220fa2..c3d76b7 100644 --- a/src/utils/roles.ts +++ b/src/utils/roles.ts @@ -120,6 +120,7 @@ export const rules: Record< "org:read", "rts:read", "rts:write", + "notification:read", "view:read", "view:write", "view:delete",