Model Struktur
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Body, Controller, Get, Post } from '@nestjs/common';
|
||||
import { User } from 'src/model';
|
||||
import { LoginUserDto } from 'src/model/dto';
|
||||
import { User } from 'src/model/user.entity';
|
||||
import { UsersService } from 'src/users/users.service';
|
||||
|
||||
@Controller('app')
|
||||
|
||||
@@ -10,11 +10,9 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { UserService } from './user.service';
|
||||
import { AuthGuard, Roles, RolesGuard } from 'src/core/secure/guards';
|
||||
import { Client } from 'src/model/client.entity';
|
||||
import { AuthenticatedRequest } from 'src/model';
|
||||
import { AuthenticatedRequest, Client, RedirectUri } from 'src/model';
|
||||
import { CreateClientDto } from 'src/model/dto/create-client.dto';
|
||||
import { ClientService } from 'src/client/client.service';
|
||||
import { RedirectUri } from 'src/model/redirect-uri.entity';
|
||||
|
||||
@UseGuards(AuthGuard, RolesGuard)
|
||||
@Controller('app/user')
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Client, ClientRepository } from 'src/model/client.entity';
|
||||
import { LogRepository } from 'src/model/log.entity';
|
||||
import { User } from 'src/model/user.entity';
|
||||
import { ClientRepository, LogRepository, User, Client } from 'src/model';
|
||||
|
||||
@Injectable()
|
||||
export class UserService {
|
||||
|
||||
@@ -2,10 +2,10 @@ import { Body, Controller, Get, Post, Query } from '@nestjs/common';
|
||||
import { UsersService } from 'src/users/users.service';
|
||||
import { ClientService } from 'src/client/client.service';
|
||||
import { FormDataRequest } from 'nestjs-form-data';
|
||||
import { Client } from 'src/model/client.entity';
|
||||
import { CustomLogger } from 'src/core/custom.logger';
|
||||
import { CreateUserDto } from 'src/model/dto/create-user.dto';
|
||||
import { RequestResetPwDto, ResetPWDto } from 'src/model/dto';
|
||||
import { Client } from 'src/model';
|
||||
|
||||
@Controller('auth')
|
||||
export class AuthController {
|
||||
|
||||
@@ -4,31 +4,13 @@ import { UsersService } from 'src/users/users.service';
|
||||
import { ClientService } from 'src/client/client.service';
|
||||
import { JwtModule } from '@nestjs/jwt';
|
||||
import { NestjsFormDataModule } from 'nestjs-form-data';
|
||||
import { User, UserRepository } from 'src/model/user.entity';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { Client, ClientRepository } from 'src/model/client.entity';
|
||||
import { RedirectUri } from 'src/model/redirect-uri.entity';
|
||||
import {
|
||||
AuthorizationCode,
|
||||
AuthorizationCodeRepository,
|
||||
} from 'src/model/auth-code.entity';
|
||||
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';
|
||||
import { DatabaseModule } from 'src/core/database/database.module';
|
||||
import { MailModule } from 'src/application/mail/mail.module';
|
||||
|
||||
@Module({
|
||||
providers: [
|
||||
UsersService,
|
||||
ClientService,
|
||||
UserRepository,
|
||||
ClientRepository,
|
||||
AuthorizationCodeRepository,
|
||||
SessionKeyRepository,
|
||||
RoleRepository,
|
||||
],
|
||||
providers: [UsersService, ClientService],
|
||||
controllers: [AuthController],
|
||||
imports: [
|
||||
JwtModule.registerAsync({
|
||||
@@ -40,14 +22,6 @@ import { MailModule } from 'src/application/mail/mail.module';
|
||||
}),
|
||||
}),
|
||||
NestjsFormDataModule,
|
||||
TypeOrmModule.forFeature([
|
||||
User,
|
||||
Client,
|
||||
RedirectUri,
|
||||
AuthorizationCode,
|
||||
SessionKey,
|
||||
Role,
|
||||
]),
|
||||
LoggerModule,
|
||||
DatabaseModule,
|
||||
MailModule,
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
|
||||
import {
|
||||
ClientRepository,
|
||||
RedirectRepository,
|
||||
User,
|
||||
Client,
|
||||
RedirectUri,
|
||||
} from 'src/model';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { Client, ClientRepository } from 'src/model/client.entity';
|
||||
import { RedirectRepository, RedirectUri } from 'src/model/redirect-uri.entity';
|
||||
import { User } from 'src/model/user.entity';
|
||||
|
||||
@Injectable()
|
||||
export class ClientService {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { LoggerService, Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Log, LOGMESSAGETYPE } from 'src/model/log.entity';
|
||||
import { Log, LOGMESSAGETYPE } from 'src/model';
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
@Injectable()
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import {
|
||||
User,
|
||||
Client,
|
||||
RedirectUri,
|
||||
SessionKey,
|
||||
Log,
|
||||
ResetPwCode,
|
||||
UserRepository,
|
||||
ClientRepository,
|
||||
SessionKeyRepository,
|
||||
RedirectRepository,
|
||||
LogRepository,
|
||||
ResetPwCodeRepository,
|
||||
AuthorizationCode,
|
||||
AuthorizationCodeRepository,
|
||||
} from 'src/model/auth-code.entity';
|
||||
import { Client, ClientRepository } from 'src/model/client.entity';
|
||||
import { Log, LogRepository } from 'src/model/log.entity';
|
||||
import { RedirectRepository, RedirectUri } from 'src/model/redirect-uri.entity';
|
||||
import { ResetPwCode, ResetPwCodeRepository } from 'src/model/reset-pw.entity';
|
||||
import { SessionKey, SessionKeyRepository } from 'src/model/session-key.entity';
|
||||
import { User, UserRepository } from 'src/model/user.entity';
|
||||
Role,
|
||||
RoleRepository,
|
||||
} from 'src/model';
|
||||
|
||||
const ENTITIES = [
|
||||
User,
|
||||
Role,
|
||||
Client,
|
||||
RedirectUri,
|
||||
AuthorizationCode,
|
||||
@@ -28,12 +37,13 @@ const REPOSITORIES = [
|
||||
RedirectRepository,
|
||||
LogRepository,
|
||||
ResetPwCodeRepository,
|
||||
RoleRepository,
|
||||
];
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature(ENTITIES)],
|
||||
controllers: [],
|
||||
providers: [...REPOSITORIES],
|
||||
exports: [...REPOSITORIES],
|
||||
exports: [...REPOSITORIES, TypeOrmModule],
|
||||
})
|
||||
export class DatabaseModule {}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { Log } from 'src/model/log.entity';
|
||||
import { CustomLogger } from './custom.logger';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { DatabaseModule } from './database/database.module';
|
||||
|
||||
@Module({
|
||||
providers: [CustomLogger],
|
||||
controllers: [],
|
||||
imports: [TypeOrmModule.forFeature([Log]), DatabaseModule],
|
||||
imports: [DatabaseModule],
|
||||
exports: [CustomLogger],
|
||||
})
|
||||
export class LoggerModule {}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
|
||||
import { Reflector } from '@nestjs/core';
|
||||
import { User } from 'src/model/user.entity';
|
||||
import { User } from 'src/model';
|
||||
|
||||
@Injectable()
|
||||
export class RolesGuard implements CanActivate {
|
||||
|
||||
@@ -5,9 +5,8 @@ import {
|
||||
PrimaryColumn,
|
||||
Repository,
|
||||
} from 'typeorm';
|
||||
import { Client } from './client.entity';
|
||||
import { User } from './user.entity';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Client, User } from './';
|
||||
|
||||
@Entity()
|
||||
export class AuthorizationCode {
|
||||
@@ -11,9 +11,7 @@ import {
|
||||
JoinTable,
|
||||
CreateDateColumn,
|
||||
} from 'typeorm';
|
||||
import { RedirectUri } from './redirect-uri.entity';
|
||||
import { AuthorizationCode } from './auth-code.entity';
|
||||
import { User } from './user.entity';
|
||||
import { AuthorizationCode, RedirectUri, User } from '.';
|
||||
|
||||
@Entity()
|
||||
export class Client {
|
||||
8
idp/src/model/entity/index.ts
Normal file
8
idp/src/model/entity/index.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export * from './client.entity';
|
||||
export * from './log.entity';
|
||||
export * from './redirect-uri.entity';
|
||||
export * from './reset-pw.entity';
|
||||
export * from './role.entity';
|
||||
export * from './session-key.entity';
|
||||
export * from './user.entity';
|
||||
export * from './auth-code.entity';
|
||||
@@ -1 +1,2 @@
|
||||
export * from './interface';
|
||||
export * from './entity';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { User } from '../user.entity';
|
||||
import { User } from '../entity';
|
||||
|
||||
export interface AuthenticatedRequest extends Request {
|
||||
user: User;
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
|
||||
import { User, UserRepository } from 'src/model/user.entity';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import * as bcrypt from 'bcrypt';
|
||||
import { ClientService } from 'src/client/client.service';
|
||||
import {
|
||||
AuthorizationCode,
|
||||
AuthorizationCodeRepository,
|
||||
} from 'src/model/auth-code.entity';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import { CustomLogger } from 'src/core/custom.logger';
|
||||
import { CreateUserDto } from 'src/model/dto/create-user.dto';
|
||||
import { SessionKeyRepository } from 'src/model/session-key.entity';
|
||||
import { Client } from 'src/model/client.entity';
|
||||
import { LoginUserDto, RequestResetPwDto, ResetPWDto } from 'src/model/dto';
|
||||
import { ResetPwCodeRepository } from 'src/model/reset-pw.entity';
|
||||
import { MailService } from 'src/application/mail/mail.service';
|
||||
import {
|
||||
UserRepository,
|
||||
SessionKeyRepository,
|
||||
ResetPwCodeRepository,
|
||||
User,
|
||||
Client,
|
||||
AuthorizationCodeRepository,
|
||||
AuthorizationCode,
|
||||
} from 'src/model';
|
||||
|
||||
@Injectable()
|
||||
export class UsersService {
|
||||
@@ -301,7 +302,7 @@ export class UsersService {
|
||||
savedCode.user.password = hashedPassword;
|
||||
await this.userRepo.save(savedCode.user);
|
||||
await this.resetPwRepo.remove(savedCode);
|
||||
await this.sessionRepo.delete({ user: { id: savedCode.user.id }});
|
||||
await this.sessionRepo.delete({ user: { id: savedCode.user.id } });
|
||||
return { success: true };
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user