Compare commits

...
Author SHA1 Message Date
marcos-silva-rodrigues df8520afd3 FIX: send origin header 2025-04-15 14:24:41 -03:00
3 changed files with 72 additions and 45 deletions
+13 -2
View File
@@ -22,7 +22,7 @@
} }
}, },
{ {
"name": "host", "name": "origin",
"required": true, "required": true,
"in": "header", "in": "header",
"schema": { "schema": {
@@ -74,7 +74,7 @@
} }
}, },
{ {
"name": "host", "name": "origin",
"required": true, "required": true,
"in": "header", "in": "header",
"schema": { "schema": {
@@ -265,6 +265,14 @@
], ],
"type": "string" "type": "string"
} }
},
{
"name": "origin",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
} }
], ],
"responses": { "responses": {
@@ -5771,6 +5779,9 @@
} }
}, },
"responses": { "responses": {
"200": {
"description": ""
},
"201": { "201": {
"description": "", "description": "",
"content": { "content": {
+26 -21
View File
@@ -54,7 +54,6 @@ import { LanguageEnum } from 'src/utils/languages.enum';
import { Language } from 'src/decorators/language.decorator'; import { Language } from 'src/decorators/language.decorator';
import { ApiInternalOnlyEndpoint } from 'src/decorators/swagger.decorator'; import { ApiInternalOnlyEndpoint } from 'src/decorators/swagger.decorator';
@ApiTags('Auth') @ApiTags('Auth')
@ApiHeaders([{ name: 'dadosfera-lang', enum: LanguageEnum, required: false }]) @ApiHeaders([{ name: 'dadosfera-lang', enum: LanguageEnum, required: false }])
@UseFilters(new GrpcToHttpExceptionFilter()) @UseFilters(new GrpcToHttpExceptionFilter())
@@ -63,7 +62,6 @@ export class AuthController {
logger: DadosferaLogger; logger: DadosferaLogger;
redirectUrl: string; redirectUrl: string;
constructor( constructor(
@Inject(DadosferaLogger) @Inject(DadosferaLogger)
dadosferaLogger: DadosferaLogger, dadosferaLogger: DadosferaLogger,
@@ -88,7 +86,7 @@ export class AuthController {
async signIn( async signIn(
@Body() { username, password, totp }: AuthSignInReq, @Body() { username, password, totp }: AuthSignInReq,
@Language() language: LanguageEnum, @Language() language: LanguageEnum,
@Headers('origin') origin: string @Headers('origin') origin: string,
): Promise<AuthSignInRes> { ): Promise<AuthSignInRes> {
this.logger.info('/auth - SignIn'); this.logger.info('/auth - SignIn');
const frontHost = origin.replace(/^https?:\/\//, ''); const frontHost = origin.replace(/^https?:\/\//, '');
@@ -103,15 +101,15 @@ export class AuthController {
async refreshAccessToken( async refreshAccessToken(
@Body() body: AuthRefreshAccessTokenReq, @Body() body: AuthRefreshAccessTokenReq,
@Language() language: LanguageEnum, @Language() language: LanguageEnum,
@Headers('host') host: string @Headers('origin') origin: string,
) { ) {
this.logger.info('/auth - RefreshAccessToken'); this.logger.info('/auth - RefreshAccessToken');
const { refreshToken, customerName: customer_name } = body; const { refreshToken, customerName: customer_name } = body;
const frontHost = origin.replace(/^https?:\/\//, '');
const metadata = PackTheMetadata({ const metadata = PackTheMetadata({
customer_name,
language, language,
host customer_name,
custom_host: frontHost,
}); });
return this.authClient.refreshAccessToken({ refreshToken }, metadata); return this.authClient.refreshAccessToken({ refreshToken }, metadata);
@@ -185,16 +183,23 @@ export class AuthController {
@ApiInternalOnlyEndpoint() @ApiInternalOnlyEndpoint()
@Post('confirm-reset-password') @Post('confirm-reset-password')
@HttpCode(HttpStatus.OK) @HttpCode(HttpStatus.OK)
async confirmResetPassword(@Body() body: AuthConfirmResetPasswordRequest) { async confirmResetPassword(
@Body() body: AuthConfirmResetPasswordRequest,
@Headers('origin') origin: string,
) {
this.logger.info('/auth - confirm-reset-password'); this.logger.info('/auth - confirm-reset-password');
const frontHost = origin.replace(/^https?:\/\//, '');
const metadata = PackTheMetadata({ custom_host: frontHost });
const { username, code, newPassword } = body; const { username, code, newPassword } = body;
return this.authClient.confirmResetPassword({ return this.authClient.confirmResetPassword(
username, {
code, username,
newPassword, code,
}); newPassword,
},
metadata,
);
} }
@ApiInternalOnlyEndpoint() @ApiInternalOnlyEndpoint()
@@ -360,7 +365,7 @@ export class AuthController {
async blockUsers( async blockUsers(
@Language() language: LanguageEnum, @Language() language: LanguageEnum,
@User() user: RequestUser, @User() user: RequestUser,
@Body() body: BulkEditRequest @Body() body: BulkEditRequest,
) { ) {
this.logger.info('blockUsers - Starting request'); this.logger.info('blockUsers - Starting request');
@@ -370,8 +375,8 @@ export class AuthController {
this.logger.debug('Calling blockUsers service', { this.logger.debug('Calling blockUsers service', {
metadata: { metadata: {
access_token: metadata.get('access_token'), access_token: metadata.get('access_token'),
language: metadata.get('language') language: metadata.get('language'),
} },
}); });
const result = await this.authClient.blockUsers(body.users, metadata); const result = await this.authClient.blockUsers(body.users, metadata);
@@ -380,7 +385,7 @@ export class AuthController {
} catch (error) { } catch (error) {
this.logger.error('blockUsers - Error', { this.logger.error('blockUsers - Error', {
error: error.message, error: error.message,
stack: error.stack stack: error.stack,
}); });
throw error; throw error;
} }
@@ -393,7 +398,7 @@ export class AuthController {
async unblockUsers( async unblockUsers(
@Language() language: LanguageEnum, @Language() language: LanguageEnum,
@User() user: RequestUser, @User() user: RequestUser,
@Body() body: BulkEditRequest @Body() body: BulkEditRequest,
) { ) {
this.logger.info('unblockUsers'); this.logger.info('unblockUsers');
const metadata = PackTheMetadata(user); const metadata = PackTheMetadata(user);
@@ -408,11 +413,11 @@ export class AuthController {
async resetUsers( async resetUsers(
@Language() language: LanguageEnum, @Language() language: LanguageEnum,
@User() user: RequestUser, @User() user: RequestUser,
@Body() body: BulkEditRequest @Body() body: BulkEditRequest,
) { ) {
this.logger.info('resetUsers'); this.logger.info('resetUsers');
const metadata = PackTheMetadata(user); const metadata = PackTheMetadata(user);
return this.authClient.resetUsers(body.users, metadata); return this.authClient.resetUsers(body.users, metadata);
} }
} }
+30 -19
View File
@@ -113,19 +113,21 @@ export class AuthClientService implements OnModuleInit {
); );
} }
async confirmResetPassword({ async confirmResetPassword(
username, { username, code, newPassword }: AuthConfirmResetPasswordRequest,
code, metadata: Metadata,
newPassword, ) {
}: AuthConfirmResetPasswordRequest) {
this.logger.info('confirmResetPassword'); this.logger.info('confirmResetPassword');
return lastValueFrom( return lastValueFrom(
this.authService.AuthConfirmResetPassword({ this.authService.AuthConfirmResetPassword(
username, {
code, username,
newPassword, code,
}), newPassword,
},
metadata,
),
); );
} }
@@ -170,15 +172,18 @@ export class AuthClientService implements OnModuleInit {
); );
} }
async blockUsers(users: string[],metadata: Metadata): Promise<BulkEditResponse> { async blockUsers(
users: string[],
metadata: Metadata,
): Promise<BulkEditResponse> {
this.logger.info('blockUsers - Service starting'); this.logger.info('blockUsers - Service starting');
try { try {
this.logger.debug('Calling BlockUser gRPC method', { this.logger.debug('Calling BlockUser gRPC method', {
metadata: { metadata: {
access_token: metadata.get('access_token'), access_token: metadata.get('access_token'),
language: metadata.get('language') language: metadata.get('language'),
} },
}); });
const response = await lastValueFrom<BulkEditResponse>( const response = await lastValueFrom<BulkEditResponse>(
@@ -196,26 +201,32 @@ export class AuthClientService implements OnModuleInit {
} }
} }
async unblockUsers(users: string[],metadata: Metadata): Promise<BulkEditResponse> { async unblockUsers(
users: string[],
metadata: Metadata,
): Promise<BulkEditResponse> {
this.logger.info('unblockUsers'); this.logger.info('unblockUsers');
return await lastValueFrom( return await lastValueFrom(
this.authService.UnblockUser({ users }, metadata), this.authService.UnblockUser({ users }, metadata),
); );
} }
async resetUsers(users: string[], metadata: Metadata): Promise<BulkEditResponse> { async resetUsers(
users: string[],
metadata: Metadata,
): Promise<BulkEditResponse> {
this.logger.info('resetUsers'); this.logger.info('resetUsers');
try { try {
this.logger.debug('Calling ResetUser gRPC method', { this.logger.debug('Calling ResetUser gRPC method', {
metadata: { metadata: {
access_token: metadata.get('access_token'), access_token: metadata.get('access_token'),
language: metadata.get('language') language: metadata.get('language'),
} },
}); });
const response = await lastValueFrom<BulkEditResponse>( const response = await lastValueFrom<BulkEditResponse>(
this.authService.ResetUser({ users }, metadata) this.authService.ResetUser({ users }, metadata),
); );
this.logger.info('resetUsers - Success', { response }); this.logger.info('resetUsers - Success', { response });
@@ -223,7 +234,7 @@ export class AuthClientService implements OnModuleInit {
} catch (error) { } catch (error) {
this.logger.error('resetUsers - Error', { this.logger.error('resetUsers - Error', {
error: error.message, error: error.message,
stack: error.stack stack: error.stack,
}); });
throw error; throw error;
} }