feat: shared between company
This commit is contained in:
parent
2fff5f7e47
commit
2c8faef25c
3 changed files with 67 additions and 14 deletions
|
|
@ -41,6 +41,7 @@ function globalAllow(user: RequestWithUser["user"]) {
|
|||
return allowList.some((v) => user.roles?.includes(v));
|
||||
}
|
||||
|
||||
const permissionCondShared = createPermCondition((_) => true);
|
||||
const permissionCond = createPermCondition(globalAllow);
|
||||
const permissionCheck = createPermCheck(globalAllow);
|
||||
|
||||
|
|
@ -100,9 +101,21 @@ export class ProductController extends Controller {
|
|||
return await prisma.product.count({
|
||||
where: {
|
||||
productGroupId,
|
||||
productGroup: isSystem(req.user)
|
||||
OR: isSystem(req.user)
|
||||
? undefined
|
||||
: { registeredBranch: { OR: permissionCond(req.user) } },
|
||||
: [
|
||||
{
|
||||
productGroup: {
|
||||
registeredBranch: { OR: permissionCond(req.user) },
|
||||
},
|
||||
},
|
||||
{
|
||||
shared: true,
|
||||
productGroup: {
|
||||
registeredBranch: { OR: permissionCondShared(req.user) },
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
@ -122,9 +135,21 @@ export class ProductController extends Controller {
|
|||
AND: {
|
||||
...filterStatus(status),
|
||||
productGroupId,
|
||||
productGroup: isSystem(req.user)
|
||||
OR: isSystem(req.user)
|
||||
? undefined
|
||||
: { registeredBranch: { OR: permissionCond(req.user) } },
|
||||
: [
|
||||
{
|
||||
productGroup: {
|
||||
registeredBranch: { OR: permissionCond(req.user) },
|
||||
},
|
||||
},
|
||||
{
|
||||
shared: true,
|
||||
productGroup: {
|
||||
registeredBranch: { OR: permissionCondShared(req.user) },
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
} satisfies Prisma.ProductWhereInput;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue