mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Add Role to TeamUser.
This commit is contained in:
parent
502facd426
commit
d5437c895e
@ -140,6 +140,7 @@ model Role {
|
||||
groupRoles GroupRole[]
|
||||
userRoles UserRole[]
|
||||
RolePermission RolePermission[]
|
||||
TeamUser TeamUser[]
|
||||
|
||||
@@map("role")
|
||||
}
|
||||
@ -162,15 +163,13 @@ model UserRole {
|
||||
id String @id() @unique() @map("user_role_id") @db.Uuid
|
||||
roleId String @map("role_id") @db.Uuid
|
||||
userId String @map("user_id") @db.Uuid
|
||||
teamId String? @map("team_id") @db.Uuid
|
||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||||
isDeleted Boolean @default(false) @map("is_deleted")
|
||||
|
||||
role Role @relation(fields: [roleId], references: [id])
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
team Team? @relation(fields: [teamId], references: [id])
|
||||
|
||||
@@unique([roleId, userId, teamId])
|
||||
@@unique([roleId, userId])
|
||||
@@map("user_role")
|
||||
}
|
||||
|
||||
@ -181,7 +180,6 @@ model Team {
|
||||
isDeleted Boolean @default(false) @map("is_deleted")
|
||||
|
||||
teamUsers TeamUser[]
|
||||
UserRole UserRole[]
|
||||
Website Website[]
|
||||
|
||||
@@map("team")
|
||||
@ -191,12 +189,14 @@ model TeamUser {
|
||||
id String @id() @unique() @map("team_user_id") @db.Uuid
|
||||
teamId String @map("team_id") @db.Uuid
|
||||
userId String @map("user_id") @db.Uuid
|
||||
roleId String @map("role_id") @db.Uuid
|
||||
isOwner Boolean @default(false) @map("is_owner")
|
||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||||
isDeleted Boolean @default(false) @map("is_deleted")
|
||||
|
||||
team Team @relation(fields: [teamId], references: [id])
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
role Role @relation(fields: [roleId], references: [id])
|
||||
|
||||
@@map("team_user")
|
||||
}
|
||||
|
@ -40,6 +40,27 @@ export async function getPermissionsByUserId(userId, name?: string): Promise<Per
|
||||
});
|
||||
}
|
||||
|
||||
export async function getPermissionsByTeamId(teamId, name?: string): Promise<Permission[]> {
|
||||
return prisma.client.permission.findMany({
|
||||
where: {
|
||||
...(name ? { name } : {}),
|
||||
RolePermission: {
|
||||
every: {
|
||||
role: {
|
||||
is: {
|
||||
TeamUser: {
|
||||
every: {
|
||||
teamId,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function updatePermission(
|
||||
data: Prisma.PermissionUpdateInput,
|
||||
where: Prisma.PermissionWhereUniqueInput,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Prisma, TeamUser, UserRole } from '@prisma/client';
|
||||
import { Prisma, TeamUser } from '@prisma/client';
|
||||
import { uuid } from 'lib/crypto';
|
||||
import prisma from 'lib/prisma';
|
||||
|
||||
@ -6,26 +6,15 @@ export async function createTeamUser(
|
||||
userId: string,
|
||||
teamId: string,
|
||||
roleId: string,
|
||||
): Promise<[TeamUser, UserRole]> {
|
||||
const { client } = prisma;
|
||||
|
||||
return client.$transaction([
|
||||
client.teamUser.create({
|
||||
data: {
|
||||
id: uuid(),
|
||||
userId,
|
||||
teamId,
|
||||
},
|
||||
}),
|
||||
client.userRole.create({
|
||||
): Promise<TeamUser> {
|
||||
return prisma.client.teamUser.create({
|
||||
data: {
|
||||
id: uuid(),
|
||||
userId,
|
||||
teamId,
|
||||
roleId,
|
||||
},
|
||||
}),
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
export async function getTeamUser(where: Prisma.TeamUserWhereInput): Promise<TeamUser> {
|
||||
|
@ -21,11 +21,10 @@ export async function getUserRoles(where: Prisma.UserRoleWhereInput): Promise<Us
|
||||
});
|
||||
}
|
||||
|
||||
export async function getUserRolesByUserId(userId: string, teamId?: string): Promise<UserRole[]> {
|
||||
export async function getUserRolesByUserId(userId: string): Promise<UserRole[]> {
|
||||
return prisma.client.userRole.findMany({
|
||||
where: {
|
||||
userId,
|
||||
teamId,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user