加入权限模块、用户模块加入userRole实体

This commit is contained in:
2025-05-07 22:12:18 +08:00
parent abe5a61697
commit 9a705d5b21
7 changed files with 72 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ import { NotificationModule } from './notification/notification.module';
import { PassportModule } from '@nestjs/passport'; import { PassportModule } from '@nestjs/passport';
import { ResourceModule } from './resource/resource.module'; import { ResourceModule } from './resource/resource.module';
import { BlogModule } from './blog/blog.module'; import { BlogModule } from './blog/blog.module';
import { RoleModule } from './role/role.module';
@Module({ @Module({
imports: [ imports: [
@@ -31,7 +32,8 @@ import { BlogModule } from './blog/blog.module';
VerificationModule, VerificationModule,
NotificationModule, NotificationModule,
ResourceModule, ResourceModule,
BlogModule BlogModule,
RoleModule,
], ],
controllers: [AppController], controllers: [AppController],
providers: [AppService], providers: [AppService],

View File

@@ -0,0 +1,13 @@
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity()
export class Permission {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ unique: true })
name: string;
@Column()
description: string;
}

View File

@@ -0,0 +1,11 @@
import { Entity, Index, PrimaryColumn } from "typeorm";
@Entity()
@Index(['roleId', 'permissionId'])
export class RolePermission {
@PrimaryColumn('uuid')
roleId: string;
@PrimaryColumn('uuid')
permissionId: string;
}

View File

@@ -0,0 +1,10 @@
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity()
export class Role {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ unique: true })
name: string;
}

View File

@@ -0,0 +1,10 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Role } from './entities/role.entity';
import { Permission } from './entities/permission.entity';
import { RolePermission } from './entities/role-permission.entity';
@Module({
imports: [TypeOrmModule.forFeature([Role, Permission, RolePermission])]
})
export class RoleModule { }

View File

@@ -0,0 +1,23 @@
import { Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn } from "typeorm";
@Entity()
@Index(['userId', 'roleId'])
export class UserRole {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column('uuid')
roleId: string;
@Column('uuid')
userId: string
@Column()
isEnabled: boolean;
@CreateDateColumn({ precision: 3 })
createdAt: Date;
@Column({ nullable: true, precision: 3 })
expiredAt?: Date;
}

View File

@@ -6,10 +6,11 @@ import { UserService } from './user.service';
import { UserSession } from './entities/user-session.entity'; import { UserSession } from './entities/user-session.entity';
import { AuthModule } from 'src/auth/auth.module'; import { AuthModule } from 'src/auth/auth.module';
import { UserSessionService } from './services/user-session.service'; import { UserSessionService } from './services/user-session.service';
import { UserRole } from './entities/user-role.entity';
@Module({ @Module({
imports: [ imports: [
TypeOrmModule.forFeature([User, UserSession]), TypeOrmModule.forFeature([User, UserSession, UserRole]),
forwardRef(() => AuthModule),// 解决循环依赖问题 forwardRef(() => AuthModule),// 解决循环依赖问题
], ],
controllers: [UserController], controllers: [UserController],