mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-15 22:39:08 +00:00
FEAT: enforce mfa
This commit is contained in:
@@ -87,6 +87,8 @@ export class AuthCustomer {
|
||||
|
||||
@ApiProperty()
|
||||
themeEnabled: boolean;
|
||||
@ApiProperty()
|
||||
enforceMfa: boolean;
|
||||
}
|
||||
|
||||
export class AuthSignInReq implements AuthSignInRequest {
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
HttpStatus,
|
||||
Inject,
|
||||
Param,
|
||||
Post,
|
||||
Put,
|
||||
Query,
|
||||
UseFilters,
|
||||
@@ -17,6 +18,7 @@ import {
|
||||
Authenticated,
|
||||
RequireAllPermissions,
|
||||
RequireModule,
|
||||
RequireSomePermission,
|
||||
} from 'src/decorators/authentication.decorator';
|
||||
import { GrpcToHttpExceptionFilter } from 'src/error/grpc-to-http-exception.filter';
|
||||
import { CustomersService } from './customers.service';
|
||||
@@ -24,6 +26,7 @@ import { CustomerLinkRequest, CustomerLinksResponse } from './dtos/customers';
|
||||
import { RequestUser, User } from 'src/decorators/user.decorator';
|
||||
import type { StringValue } from 'ms';
|
||||
import { PackTheMetadata } from 'src/utils/ PackTheMetadata';
|
||||
import { EnforceMfa } from './dtos/enforce-mfa';
|
||||
|
||||
@ApiTags('Customers')
|
||||
@Controller('customers')
|
||||
@@ -39,6 +42,14 @@ export class CustomersController {
|
||||
this.logger = dadosferaLogger.logger;
|
||||
}
|
||||
|
||||
@Post(':id/mfa')
|
||||
@Authenticated()
|
||||
@RequireSomePermission(PERMISSIONS_GROUPS.USERS.permissions.ADMIN)
|
||||
async enableMfaEnforce(@Param('id') id: string, @Body() data: EnforceMfa) {
|
||||
this.logger.info('enableMfaEnforce', { id });
|
||||
return await this.customersService.enableEnforceMfa(id, data.enabled);
|
||||
}
|
||||
|
||||
@Get(':id/links')
|
||||
@Authenticated()
|
||||
@ApiOkResponse({ type: CustomerLinksResponse })
|
||||
|
||||
@@ -34,6 +34,7 @@ import DadosferaLogger from '@dadosfera/dadosfera-logs';
|
||||
// This function will accept any string, which may result in a bug.
|
||||
@Injectable()
|
||||
export class CustomersService implements OnModuleInit {
|
||||
|
||||
private customerService: CustomersProtoService;
|
||||
private logger: DadosferaLogger;
|
||||
private pipelineReadService: ReadService.PipelineV2ReadService;
|
||||
@@ -203,4 +204,13 @@ export class CustomersService implements OnModuleInit {
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
async enableEnforceMfa(id: string, enabled: boolean) {
|
||||
return await lastValueFrom(
|
||||
this.customerService.CustomerUpdateEnforceMfa({
|
||||
customerId: id,
|
||||
enforceMfa: enabled
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
import { ApiProperty } from "@nestjs/swagger";
|
||||
|
||||
export class EnforceMfa {
|
||||
@ApiProperty()
|
||||
enabled: boolean
|
||||
}
|
||||
Reference in New Issue
Block a user