role
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
||||
import { LoggerModule } from 'src/core/logger.module';
|
||||
import { SessionKey, SessionKeyRepository } from 'src/model/session-key.entity';
|
||||
import { ConfigModule, ConfigService } from '@nestjs/config';
|
||||
import { Role, RoleRepository } from 'src/model/role.entity';
|
||||
|
||||
@Module({
|
||||
providers: [
|
||||
@@ -24,6 +25,7 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
|
||||
ClientRepository,
|
||||
AuthorizationCodeRepository,
|
||||
SessionKeyRepository,
|
||||
RoleRepository,
|
||||
],
|
||||
controllers: [AuthController],
|
||||
imports: [
|
||||
@@ -42,6 +44,7 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
|
||||
RedirectUri,
|
||||
AuthorizationCode,
|
||||
SessionKey,
|
||||
Role,
|
||||
]),
|
||||
LoggerModule,
|
||||
],
|
||||
|
||||
35
idp/src/model/role.entity.ts
Normal file
35
idp/src/model/role.entity.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Exclude } from 'class-transformer';
|
||||
import {
|
||||
Entity,
|
||||
Column,
|
||||
PrimaryGeneratedColumn,
|
||||
DataSource,
|
||||
Repository,
|
||||
ManyToOne,
|
||||
} from 'typeorm';
|
||||
|
||||
import { User } from './user.entity';
|
||||
|
||||
@Entity()
|
||||
export class Role {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@Column()
|
||||
name: string;
|
||||
@Exclude()
|
||||
@ManyToOne(() => User, (user) => user.role)
|
||||
users: User[];
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class RoleRepository extends Repository<Role> {
|
||||
constructor(dataSource: DataSource) {
|
||||
super(Role, dataSource.createEntityManager());
|
||||
}
|
||||
|
||||
findById(id: string): Promise<Role> {
|
||||
return this.findOneBy({ id });
|
||||
}
|
||||
}
|
||||
@@ -8,9 +8,11 @@ import {
|
||||
Repository,
|
||||
OneToMany,
|
||||
CreateDateColumn,
|
||||
ManyToOne,
|
||||
} from 'typeorm';
|
||||
import { AuthorizationCode } from './auth-code.entity';
|
||||
import { SessionKey } from './session-key.entity';
|
||||
import { Role } from './role.entity';
|
||||
|
||||
@Entity()
|
||||
export class User {
|
||||
@@ -45,6 +47,10 @@ export class User {
|
||||
@OneToMany(() => SessionKey, (key) => key.user)
|
||||
sessionKeys: SessionKey[];
|
||||
|
||||
@Exclude()
|
||||
@ManyToOne(() => Role, (role) => role.users)
|
||||
role?: Role;
|
||||
|
||||
accessToken?: string;
|
||||
refreshToken?: string;
|
||||
}
|
||||
@@ -56,10 +62,10 @@ export class UserRepository extends Repository<User> {
|
||||
}
|
||||
|
||||
findByUsername(username: string): Promise<User> {
|
||||
return this.findOneBy({ username });
|
||||
return this.findOne({where: { username }, relations: ['role']});
|
||||
}
|
||||
|
||||
findById(id: string): Promise<User> {
|
||||
return this.findOneBy({ id });
|
||||
return this.findOne({where: { id }, relations: ['role']});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user