refactor: move include head to opts
This commit is contained in:
parent
1124a040c8
commit
57397cc894
2 changed files with 8 additions and 4 deletions
|
|
@ -157,7 +157,7 @@ export class BranchController extends Controller {
|
||||||
async getStats(@Request() req: RequestWithUser, @Query() headOfficeId?: string) {
|
async getStats(@Request() req: RequestWithUser, @Query() headOfficeId?: string) {
|
||||||
const where = {
|
const where = {
|
||||||
AND: {
|
AND: {
|
||||||
OR: permissionCond(req.user, true),
|
OR: permissionCond(req.user, { alwaysIncludeHead: true }),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -255,7 +255,7 @@ export class BranchController extends Controller {
|
||||||
...filterStatus(status),
|
...filterStatus(status),
|
||||||
headOfficeId: headOfficeId ?? (filter === "head" || tree ? null : undefined),
|
headOfficeId: headOfficeId ?? (filter === "head" || tree ? null : undefined),
|
||||||
NOT: { headOfficeId: filter === "sub" && !headOfficeId ? null : undefined },
|
NOT: { headOfficeId: filter === "sub" && !headOfficeId ? null : undefined },
|
||||||
OR: permissionCond(req.user, withHead),
|
OR: permissionCond(req.user, { alwaysIncludeHead: withHead }),
|
||||||
},
|
},
|
||||||
OR: queryOrNot<Prisma.BranchWhereInput[]>(query, [
|
OR: queryOrNot<Prisma.BranchWhereInput[]>(query, [
|
||||||
{ code: { contains: query, mode: "insensitive" } },
|
{ code: { contains: query, mode: "insensitive" } },
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Prisma } from "@prisma/client";
|
||||||
import prisma from "../db";
|
import prisma from "../db";
|
||||||
import HttpError from "../interfaces/http-error";
|
import HttpError from "../interfaces/http-error";
|
||||||
import HttpStatus from "../interfaces/http-status";
|
import HttpStatus from "../interfaces/http-status";
|
||||||
|
|
@ -18,7 +19,10 @@ export function branchRelationPermInclude(user: RequestWithUser["user"]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createPermCondition(globalAllow: (user: RequestWithUser["user"]) => boolean) {
|
export function createPermCondition(globalAllow: (user: RequestWithUser["user"]) => boolean) {
|
||||||
return (user: RequestWithUser["user"], alwaysIncludeHead?: boolean) =>
|
return (
|
||||||
|
user: RequestWithUser["user"],
|
||||||
|
opts?: { alwaysIncludeHead?: boolean; includeInActive?: boolean },
|
||||||
|
) =>
|
||||||
isSystem(user)
|
isSystem(user)
|
||||||
? undefined
|
? undefined
|
||||||
: [
|
: [
|
||||||
|
|
@ -27,7 +31,7 @@ export function createPermCondition(globalAllow: (user: RequestWithUser["user"])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
branch:
|
branch:
|
||||||
alwaysIncludeHead || globalAllow(user)
|
opts?.alwaysIncludeHead || globalAllow(user)
|
||||||
? { some: { user: { some: { userId: user.sub } } } }
|
? { some: { user: { some: { userId: user.sub } } } }
|
||||||
: undefined,
|
: undefined,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue