feat: allow users to have access to multiple oorgs

This commit is contained in:
2025-12-01 17:26:35 +05:30
parent 06a7b961ed
commit 8241fa3eaa
17 changed files with 117 additions and 44 deletions

View File

@@ -108,7 +108,11 @@ export async function getPermit(permitId: string, user: AuthenticatedUser) {
.populate({ path: "assignedTo", select: "pid name avatar" })
.populate({ path: "createdBy", select: "pid name avatar" });
if (permit && user.role == "client" && user.orgId != permit.client.toString())
if (
permit &&
user.role == "client" &&
!user.orgId.includes(permit.client.toString())
)
return null;
return permit;
@@ -124,7 +128,11 @@ export async function listPermits(
let filterObj = getFilterObject(params) || [];
if (user.role == "client") {
filterObj.push({ client: new mongoose.Types.ObjectId(user.orgId) });
filterObj.push({
client: {
$in: user.orgId.map((item) => new mongoose.Types.ObjectId(item)),
},
});
}
let { taggedFilter, taggedUserFilterIndex } = getTaggedUsersFilter(
@@ -395,7 +403,11 @@ export async function searchPermit(
const filterObj = getFilterObject(params) || [];
if (user.role == "client") {
filterObj.push({ client: new mongoose.Types.ObjectId(user.orgId) });
filterObj.push({
client: {
$in: user.orgId.map((item) => new mongoose.Types.ObjectId(item)),
},
});
}
if (!params.searchToken)