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[]
|
groupRoles GroupRole[]
|
||||||
userRoles UserRole[]
|
userRoles UserRole[]
|
||||||
RolePermission RolePermission[]
|
RolePermission RolePermission[]
|
||||||
|
TeamUser TeamUser[]
|
||||||
|
|
||||||
@@map("role")
|
@@map("role")
|
||||||
}
|
}
|
||||||
@ -162,15 +163,13 @@ model UserRole {
|
|||||||
id String @id() @unique() @map("user_role_id") @db.Uuid
|
id String @id() @unique() @map("user_role_id") @db.Uuid
|
||||||
roleId String @map("role_id") @db.Uuid
|
roleId String @map("role_id") @db.Uuid
|
||||||
userId String @map("user_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)
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||||||
isDeleted Boolean @default(false) @map("is_deleted")
|
isDeleted Boolean @default(false) @map("is_deleted")
|
||||||
|
|
||||||
role Role @relation(fields: [roleId], references: [id])
|
role Role @relation(fields: [roleId], references: [id])
|
||||||
user User @relation(fields: [userId], 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")
|
@@map("user_role")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,7 +180,6 @@ model Team {
|
|||||||
isDeleted Boolean @default(false) @map("is_deleted")
|
isDeleted Boolean @default(false) @map("is_deleted")
|
||||||
|
|
||||||
teamUsers TeamUser[]
|
teamUsers TeamUser[]
|
||||||
UserRole UserRole[]
|
|
||||||
Website Website[]
|
Website Website[]
|
||||||
|
|
||||||
@@map("team")
|
@@map("team")
|
||||||
@ -191,12 +189,14 @@ model TeamUser {
|
|||||||
id String @id() @unique() @map("team_user_id") @db.Uuid
|
id String @id() @unique() @map("team_user_id") @db.Uuid
|
||||||
teamId String @map("team_id") @db.Uuid
|
teamId String @map("team_id") @db.Uuid
|
||||||
userId String @map("user_id") @db.Uuid
|
userId String @map("user_id") @db.Uuid
|
||||||
|
roleId String @map("role_id") @db.Uuid
|
||||||
isOwner Boolean @default(false) @map("is_owner")
|
isOwner Boolean @default(false) @map("is_owner")
|
||||||
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||||||
isDeleted Boolean @default(false) @map("is_deleted")
|
isDeleted Boolean @default(false) @map("is_deleted")
|
||||||
|
|
||||||
team Team @relation(fields: [teamId], references: [id])
|
team Team @relation(fields: [teamId], references: [id])
|
||||||
user User @relation(fields: [userId], references: [id])
|
user User @relation(fields: [userId], references: [id])
|
||||||
|
role Role @relation(fields: [roleId], references: [id])
|
||||||
|
|
||||||
@@map("team_user")
|
@@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(
|
export async function updatePermission(
|
||||||
data: Prisma.PermissionUpdateInput,
|
data: Prisma.PermissionUpdateInput,
|
||||||
where: Prisma.PermissionWhereUniqueInput,
|
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 { uuid } from 'lib/crypto';
|
||||||
import prisma from 'lib/prisma';
|
import prisma from 'lib/prisma';
|
||||||
|
|
||||||
@ -6,26 +6,15 @@ export async function createTeamUser(
|
|||||||
userId: string,
|
userId: string,
|
||||||
teamId: string,
|
teamId: string,
|
||||||
roleId: string,
|
roleId: string,
|
||||||
): Promise<[TeamUser, UserRole]> {
|
): Promise<TeamUser> {
|
||||||
const { client } = prisma;
|
return prisma.client.teamUser.create({
|
||||||
|
data: {
|
||||||
return client.$transaction([
|
id: uuid(),
|
||||||
client.teamUser.create({
|
userId,
|
||||||
data: {
|
teamId,
|
||||||
id: uuid(),
|
roleId,
|
||||||
userId,
|
},
|
||||||
teamId,
|
});
|
||||||
},
|
|
||||||
}),
|
|
||||||
client.userRole.create({
|
|
||||||
data: {
|
|
||||||
id: uuid(),
|
|
||||||
userId,
|
|
||||||
teamId,
|
|
||||||
roleId,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getTeamUser(where: Prisma.TeamUserWhereInput): Promise<TeamUser> {
|
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({
|
return prisma.client.userRole.findMany({
|
||||||
where: {
|
where: {
|
||||||
userId,
|
userId,
|
||||||
teamId,
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user