mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 08:58:26 +00:00
Added entities for page_permissions and page_users tables
This commit is contained in:
parent
fc3669af74
commit
87fa9e71a1
5 changed files with 79 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ import { Organization } from './organization.entity';
|
|||
import { GroupUsers } from './group_users.entity';
|
||||
import { GranularPermissions } from './granular_permissions.entity';
|
||||
import { GROUP_PERMISSIONS_TYPE } from '@modules/group-permissions/constants';
|
||||
import { PageUser } from './page_users.entity';
|
||||
|
||||
@Entity({ name: 'permission_groups' })
|
||||
export class GroupPermissions extends BaseEntity {
|
||||
|
|
@ -62,5 +63,8 @@ export class GroupPermissions extends BaseEntity {
|
|||
@OneToMany(() => GranularPermissions, (granularPermissions) => granularPermissions.group, { onDelete: 'CASCADE' })
|
||||
groupGranularPermissions: GranularPermissions[];
|
||||
|
||||
@OneToMany(() => PageUser, (pageUser) => pageUser.permissionGroup)
|
||||
pageUsers: PageUser[];
|
||||
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import {
|
|||
} from 'typeorm';
|
||||
import { AppVersion } from './app_version.entity';
|
||||
import { Component } from './component.entity';
|
||||
import { PagePermission } from './page_permissions.entity';
|
||||
|
||||
@Entity({ name: 'pages' })
|
||||
export class Page {
|
||||
|
|
@ -61,4 +62,7 @@ export class Page {
|
|||
|
||||
@OneToMany(() => Component, (component) => component.page)
|
||||
components: Component[];
|
||||
|
||||
@OneToMany(() => PagePermission, (permission) => permission.page)
|
||||
permissions: PagePermission[];
|
||||
}
|
||||
|
|
|
|||
33
server/src/entities/page_permissions.entity.ts
Normal file
33
server/src/entities/page_permissions.entity.ts
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, CreateDateColumn, OneToMany } from 'typeorm';
|
||||
import { Page } from './page.entity';
|
||||
import { PageUser } from './page_users.entity';
|
||||
|
||||
export enum PermissionType {
|
||||
SINGLE = 'SINGLE',
|
||||
GROUP = 'GROUP',
|
||||
}
|
||||
|
||||
@Entity('page_permissions')
|
||||
export class PagePermission {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@Column({ name: 'page_id', type: 'uuid', nullable: false })
|
||||
pageId: string;
|
||||
|
||||
@Column({
|
||||
type: 'enum',
|
||||
enum: PermissionType,
|
||||
})
|
||||
type: PermissionType;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@ManyToOne(() => Page, (page) => page.permissions, { onDelete: 'CASCADE' })
|
||||
@JoinColumn({ name: 'page_id' })
|
||||
page: Page;
|
||||
|
||||
@OneToMany(() => PageUser, (pageUser) => pageUser.pagePermission)
|
||||
users: PageUser[];
|
||||
}
|
||||
34
server/src/entities/page_users.entity.ts
Normal file
34
server/src/entities/page_users.entity.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, CreateDateColumn } from 'typeorm';
|
||||
import { User } from './user.entity';
|
||||
import { PagePermission } from './page_permissions.entity';
|
||||
import { GroupPermissions } from './group_permissions.entity';
|
||||
|
||||
@Entity('page_users')
|
||||
export class PageUser {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@Column({ name: 'page_permissions_id', type: 'uuid' })
|
||||
pagePermissionsId: string;
|
||||
|
||||
@Column({ name: 'user_id', type: 'uuid', nullable: true })
|
||||
userId: string | null;
|
||||
|
||||
@Column({ name: 'permission_groups_id', type: 'uuid', nullable: true })
|
||||
permissionGroupsId: string | null;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@ManyToOne(() => PagePermission, { onDelete: 'CASCADE' })
|
||||
@JoinColumn({ name: 'page_permissions_id' })
|
||||
pagePermission: PagePermission;
|
||||
|
||||
@ManyToOne(() => User, { onDelete: 'CASCADE', nullable: true })
|
||||
@JoinColumn({ name: 'user_id' })
|
||||
user: User;
|
||||
|
||||
@ManyToOne(() => GroupPermissions, { onDelete: 'CASCADE', nullable: true })
|
||||
@JoinColumn({ name: 'permission_groups_id' })
|
||||
permissionGroup: GroupPermissions;
|
||||
}
|
||||
|
|
@ -29,6 +29,7 @@ import { OnboardingStatus } from '@modules/onboarding/constants';
|
|||
import { AiConversation } from './ai_conversation.entity';
|
||||
import { AiResponseVote } from './ai_response_vote.entity';
|
||||
import { USER_ROLE } from '@modules/group-permissions/constants';
|
||||
import { PageUser } from './page_users.entity';
|
||||
|
||||
@Entity({ name: 'users' })
|
||||
export class User extends BaseEntity {
|
||||
|
|
@ -184,6 +185,9 @@ export class User extends BaseEntity {
|
|||
@OneToMany(() => AiResponseVote, (aiResponseVote) => aiResponseVote.user, { onDelete: 'CASCADE' })
|
||||
aiResponseVotes: AiResponseVote[];
|
||||
|
||||
@OneToMany(() => PageUser, (pageUser) => pageUser.user)
|
||||
pageUsers: PageUser[];
|
||||
|
||||
organizationId: string;
|
||||
invitedOrganizationId: string;
|
||||
organizationIds?: Array<string>;
|
||||
|
|
|
|||
Loading…
Reference in a new issue