This commit is contained in:
Kallesh B S 2025-09-26 15:02:51 +05:30
parent b27fee6ece
commit 67173f3a6c
6 changed files with 67 additions and 28 deletions

View File

@ -305,22 +305,22 @@ export class AuthService {
// throw new BadRequestException("Invalid username or password")
// }
if (access_token && refresh_token && userSession.length > 0) {
// if (access_token && refresh_token && userSession.length > 0) {
const getSub: any = jwt.decode(refresh_token, { complete: true })
// const getSub: any = jwt.decode(refresh_token, { complete: true })
const user: any = await this.getUserDetailsById(getSub?.payload.sub)
// const user: any = await this.getUserDetailsById(getSub?.payload.sub)
if (user.email !== username) {
throw new UnauthorizedException("Authentication failed")
}
// if (user.email !== username) {
// throw new UnauthorizedException("Authentication failed")
// }
let tokens = await this.getTokenFromRefreshToken(req);
const decoded = jwt.decode(access_token, { complete: true });
const email: any = (decoded && typeof decoded === 'object') ? (decoded as any).payload?.email : undefined;
return { ...tokens, email, ApplicationName: ROLE }
// let tokens = await this.getTokenFromRefreshToken(req);
// const decoded = jwt.decode(access_token, { complete: true });
// const email: any = (decoded && typeof decoded === 'object') ? (decoded as any).payload?.email : undefined;
// return { ...tokens, email, ApplicationName: ROLE }
}
// }
const response = await axios.post(this.TOKEN_URL, params, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
@ -845,6 +845,26 @@ export class AuthService {
async getMailTemplate(body: SendMailDTO, token: string, source: string, appDomain: string): Promise<MailTemplateDTO | null> {
switch (body.P_MAIL_TYPE) {
case MailTypeDTO.REGISTER_USCIB:
return {
to: body.P_TO,
subject: `🔐 Register Your Account`,
templateName: 'a',
variables: {
to: body.P_TO,
url: `https://${appDomain.toLowerCase() === "policy" ? "policy" : appDomain.toLowerCase() === "policy-1" ? "policy-1" : appDomain.toLowerCase() === "policy-2" ? "policy-2" : ""}.alphaomegainfosys.com/register`
}
}
case MailTypeDTO.REGISTER_SP:
return {
to: body.P_TO,
subject: `🔐 Register Your Account`,
templateName: 'a',
variables: {
to: body.P_TO,
url: `https://${appDomain.toLowerCase() === "sp" ? "sp" : appDomain.toLowerCase() === "sp-1" ? "sp-1" : appDomain.toLowerCase() === "sp-2" ? "sp-2" : ""}.alphaomegainfosys.com/register`
}
}
case MailTypeDTO.REGISTER_CLIENT:
return {
to: body.P_TO,

View File

@ -37,7 +37,7 @@ export class RolesGuard implements CanActivate {
try {
const decoded: any = jwt.decode(token);
const roles: string[] = decoded?.resource_access?.['carnet-app']?.roles || [];
const roles: string[] = decoded?.resource_access?.[process.env.CLIENT_ID || '']?.roles || [];
const hasRole = requiredRoles.some(role => roles.includes(role));
if (!hasRole) {

View File

@ -20,7 +20,12 @@ async function bootstrap() {
'http://localhost:5173',
'https://policy.alphaomegainfosys.com',
'https://sp.alphaomegainfosys.com',
'https://client.alphaomegainfosys.com'
'https://policy-2.alphaomegainfosys.com',
'https://client-2.alphaomegainfosys.com',
'https://sp-2.alphaomegainfosys.com',
'https://policy-1.alphaomegainfosys.com',
'https://client-1.alphaomegainfosys.com',
'https://sp-1.alphaomegainfosys.com',
],
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
preflightContinue: false,

View File

@ -436,7 +436,7 @@ export class ManageClientsService {
const pgArrayLiteral = `{${addressLiterals.join(',')}}`;
const callProcQuery = `
CALL "CARNETSYS".managepreparer_pkg_updateclientlocations($1, $2, $3::"CARNETSYS".addresstable[], $4, $5)
CALL "CARNETSYS".managepreparer_pkg_createclientlocation($1, $2, $3::"CARNETSYS".addresstable[], $4, $5)
`;
await client.query(callProcQuery,
[
@ -515,7 +515,7 @@ export class ManageClientsService {
await client.query('BEGIN');
const callProcQuery = `
CALL "CARNETSYS".managepreparer_pkg_getpreparerlocbyclientid($1, $2, $3)
CALL "CARNETSYS".managepreparer_pkg_GetPreparerByClientid($1, $2, $3)
`;
await client.query(callProcQuery, [body.P_SPID, body.P_CLIENTID, cursorName]);

View File

@ -41,8 +41,8 @@ export class UserMaintenanceController {
@Post('CreateUSCIBLogins')
@Roles('pua')
async CreateUSCIBLogins(@Body() body: CreateUSCIBLoginsDTO) {
return await this.userMaintenanceService.CreateUSCIBLogins(body);
async CreateUSCIBLogins(@Body() body: CreateUSCIBLoginsDTO, @Req() req: Request) {
return await this.userMaintenanceService.CreateUSCIBLogins(body, req);
}
// SP LOGINS

View File

@ -162,7 +162,7 @@ export class UserMaintenanceService {
}
}
async CreateUSCIBLogins(body: CreateUSCIBLoginsDTO) {
async CreateUSCIBLogins(body: CreateUSCIBLoginsDTO, req: Request) {
let client: PoolClient | null = null;
@ -194,6 +194,20 @@ export class UserMaintenanceService {
checkPgUserDefinedErrors(fetchResult);
let appDomain;
if (req.headers.origin) {
appDomain = extractSubdomain(req.headers.origin)
}
else {
appDomain = ""
}
const mailRes = await this.authService.sendMail({ P_TO: body.P_USERID, P_MAIL_TYPE: MailTypeDTO.REGISTER_USCIB }, appDomain)
if (mailRes.statusCode !== 200) {
throw new InternalServerException();
}
return {
statusCode: 201,
message: ResponseStatus.created,