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