diff --git a/src/services/permission.ts b/src/services/permission.ts index 8df8f99..941b08e 100644 --- a/src/services/permission.ts +++ b/src/services/permission.ts @@ -40,37 +40,38 @@ export function createPermCondition( ? undefined : [ { - status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, - user: { some: { userId: user.sub } }, - }, - { - status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, - branch: - opts?.alwaysIncludeHead || globalAllow(user) - ? { - some: { user: { some: { userId: user.sub } } }, - } - : undefined, - }, - { - headOffice: globalAllow(user) - ? { - status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, - branch: { - some: { user: { some: { userId: user.sub } } }, - }, - } - : undefined, - status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, - }, - { - headOffice: globalAllow(user) - ? { - status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, - user: { some: { userId: user.sub } }, - } - : undefined, - status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, + AND: opts?.activeOnly ? { status: { not: Status.INACTIVE } } : undefined, + OR: [ + { + user: { some: { userId: user.sub } }, + }, + { + branch: + opts?.alwaysIncludeHead || globalAllow(user) + ? { + some: { user: { some: { userId: user.sub } } }, + } + : undefined, + }, + { + headOffice: globalAllow(user) + ? { + status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, + branch: { + some: { user: { some: { userId: user.sub } } }, + }, + } + : undefined, + }, + { + headOffice: globalAllow(user) + ? { + status: opts?.activeOnly ? { not: Status.INACTIVE } : undefined, + user: { some: { userId: user.sub } }, + } + : undefined, + }, + ], }, ]; }