add rbac module
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { AbilityTuple, MongoQuery, RawRuleFrom } from '@casl/ability';
|
||||
import { Exclude, Expose } from 'class-transformer';
|
||||
import { Column, Entity, JoinTable, ManyToMany, PrimaryGeneratedColumn, Relation } from 'typeorm';
|
||||
import type { Relation } from 'typeorm';
|
||||
import { Column, Entity, JoinTable, ManyToMany, PrimaryGeneratedColumn } from 'typeorm';
|
||||
|
||||
import { UserEntity } from '@/modules/user/entities';
|
||||
|
||||
@@ -53,7 +54,7 @@ export class PermissionEntity<
|
||||
* 权限角色
|
||||
*/
|
||||
@Expose({ groups: ['permission-list', 'permission-detail'] })
|
||||
@ManyToMany(() => RoleEntity, (role) => role.permissions, { cascade: true })
|
||||
@ManyToMany(() => RoleEntity, (role) => role.permissions)
|
||||
@JoinTable()
|
||||
roles: Relation<RoleEntity>[];
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Exclude, Expose, Type } from 'class-transformer';
|
||||
import type { Relation } from 'typeorm';
|
||||
import {
|
||||
BaseEntity,
|
||||
Column,
|
||||
@@ -7,7 +8,6 @@ import {
|
||||
JoinTable,
|
||||
ManyToMany,
|
||||
PrimaryGeneratedColumn,
|
||||
Relation,
|
||||
} from 'typeorm';
|
||||
|
||||
import { UserEntity } from '@/modules/user/entities';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { DynamicModule, Module } from '@nestjs/common';
|
||||
import { DynamicModule, forwardRef, Module } from '@nestjs/common';
|
||||
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
|
||||
@@ -7,6 +7,10 @@ import { Configure } from '@/modules/config/configure';
|
||||
import { DatabaseModule } from '@/modules/database/database.module';
|
||||
import { addEntities, addSubscribers } from '@/modules/database/utils';
|
||||
|
||||
import { RbacModule } from '@/modules/rbac/rbac.module';
|
||||
|
||||
import { RoleRepository } from '@/modules/rbac/repositories';
|
||||
|
||||
import * as entities from './entities';
|
||||
import * as guards from './guards';
|
||||
import * as interceptors from './interceptors';
|
||||
@@ -22,11 +26,13 @@ export class UserModule {
|
||||
module: UserModule,
|
||||
imports: [
|
||||
PassportModule,
|
||||
forwardRef(() => RbacModule),
|
||||
services.TokenService.JwtModuleFactory(configure),
|
||||
await addEntities(configure, Object.values(entities)),
|
||||
DatabaseModule.forRepository(Object.values(repositories)),
|
||||
],
|
||||
providers: [
|
||||
RoleRepository,
|
||||
...Object.values(interceptors),
|
||||
...Object.values(services),
|
||||
...Object.values(strategies),
|
||||
|
||||
@@ -7,6 +7,7 @@ import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify
|
||||
import { existsSync } from 'fs-extra';
|
||||
import { isNil } from 'lodash';
|
||||
|
||||
import { RbacModule } from '@/modules/rbac/rbac.module';
|
||||
import { UserModule } from '@/modules/user/user.module';
|
||||
|
||||
import * as configs from './config';
|
||||
@@ -29,6 +30,7 @@ export const createOptions: CreateOptions = {
|
||||
await RestfulModule.forRoot(configure),
|
||||
await ContentModule.forRoot(configure),
|
||||
await UserModule.forRoot(configure),
|
||||
await RbacModule.forRoot(configure),
|
||||
],
|
||||
globals: { guard: RbacGuard },
|
||||
builder: async ({ configure, BootModule }) => {
|
||||
|
||||
Reference in New Issue
Block a user