Files
calendar/packages/features/pbac/domain/models/Role.ts
T
sean-brydonandGitHub 33b5bf1db8 fix: Move pbac to prisma from kysley (#22318)
* fixes

* fix prisma mock to include transaction callbacj

* remove redudant transactions

* remove hard requirement on transactions in services

* remove mocktrx

* fix cubic feedback

* correct permission updating logic of roles. Implement diff service + domain types

* remove role mapper
2025-07-10 10:24:50 +00:00

53 lines
967 B
TypeScript

import type { PermissionString } from "../types/permission-registry";
export const RoleType = {
SYSTEM: "SYSTEM",
CUSTOM: "CUSTOM",
} as const;
export type RoleType = (typeof RoleType)[keyof typeof RoleType];
export interface RolePermission {
id: string;
roleId: string;
resource: string;
action: string;
createdAt: Date;
}
export interface Role {
id: string;
name: string;
color?: string;
description?: string;
teamId?: number;
type: RoleType;
permissions: RolePermission[];
createdAt: Date;
updatedAt: Date;
}
// Value Objects
export interface CreateRoleData {
name: string;
color?: string;
description?: string;
teamId?: number;
permissions: PermissionString[];
type?: RoleType;
}
export interface UpdateRolePermissionsData {
roleId: string;
permissions: PermissionString[];
updates?: {
color?: string;
name?: string;
};
}
export type PermissionChange = {
resource: string;
action: string;
};