umami/queries/admin/permission.ts

78 lines
1.7 KiB
TypeScript
Raw Normal View History

2022-11-18 07:27:33 +01:00
import { Prisma, Permission } from '@prisma/client';
import prisma from 'lib/prisma';
export async function createPermission(data: Prisma.PermissionCreateInput): Promise<Permission> {
return prisma.client.permission.create({
data,
});
}
export async function getPermission(where: Prisma.PermissionWhereUniqueInput): Promise<Permission> {
return prisma.client.permission.findUnique({
where,
});
}
export async function getPermissions(where: Prisma.PermissionWhereInput): Promise<Permission[]> {
return prisma.client.permission.findMany({
where,
});
}
2022-12-01 03:40:44 +01:00
export async function getPermissionsByUserId(userId: string, name?: string): Promise<Permission[]> {
2022-11-20 09:48:13 +01:00
return prisma.client.permission.findMany({
where: {
...(name ? { name } : {}),
RolePermission: {
every: {
role: {
is: {
userRoles: {
every: {
userId,
},
},
},
},
},
},
},
});
}
2022-12-01 03:40:44 +01:00
export async function getTeamPermissionsByUserId(
userId: string,
teamId: string,
name?: string,
): Promise<Permission[]> {
2022-11-28 22:08:48 +01:00
return prisma.client.permission.findMany({
where: {
...(name ? { name } : {}),
RolePermission: {
every: {
role: {
is: {
TeamUser: {
every: {
2022-12-01 03:40:44 +01:00
userId,
2022-11-28 22:08:48 +01:00
teamId,
},
},
},
},
},
},
},
});
}
2022-11-18 07:27:33 +01:00
export async function updatePermission(
data: Prisma.PermissionUpdateInput,
where: Prisma.PermissionWhereUniqueInput,
): Promise<Permission> {
return prisma.client.permission.update({
data,
where,
});
}