feat: feedback implemented
This commit is contained in:
committed by
Andrew Bastin
parent
2ba79a043b
commit
9e9907b4be
@@ -19,7 +19,7 @@ export class MicrosoftStrategy extends PassportStrategy(Strategy) {
|
|||||||
clientSecret: configService.get('INFRA.MICROSOFT_CLIENT_SECRET'),
|
clientSecret: configService.get('INFRA.MICROSOFT_CLIENT_SECRET'),
|
||||||
callbackURL: configService.get('INFRA.MICROSOFT_CALLBACK_URL'),
|
callbackURL: configService.get('INFRA.MICROSOFT_CALLBACK_URL'),
|
||||||
scope: [configService.get('INFRA.MICROSOFT_SCOPE')],
|
scope: [configService.get('INFRA.MICROSOFT_SCOPE')],
|
||||||
tenant: configService.get('MICROSOFT_TENANT'),
|
tenant: configService.get('INFRA.MICROSOFT_TENANT'),
|
||||||
store: true,
|
store: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ const AuthProviderConfigurations = {
|
|||||||
InfraConfigEnum.MICROSOFT_CLIENT_SECRET,
|
InfraConfigEnum.MICROSOFT_CLIENT_SECRET,
|
||||||
InfraConfigEnum.MICROSOFT_CALLBACK_URL,
|
InfraConfigEnum.MICROSOFT_CALLBACK_URL,
|
||||||
InfraConfigEnum.MICROSOFT_SCOPE,
|
InfraConfigEnum.MICROSOFT_SCOPE,
|
||||||
|
InfraConfigEnum.MICROSOFT_TENANT,
|
||||||
],
|
],
|
||||||
[AuthProvider.EMAIL]: [
|
[AuthProvider.EMAIL]: [
|
||||||
InfraConfigEnum.MAILER_SMTP_URL,
|
InfraConfigEnum.MAILER_SMTP_URL,
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import {
|
|||||||
throwErr,
|
throwErr,
|
||||||
validateSMTPEmail,
|
validateSMTPEmail,
|
||||||
validateSMTPUrl,
|
validateSMTPUrl,
|
||||||
validateSSOScope,
|
|
||||||
validateUrl,
|
validateUrl,
|
||||||
} from 'src/utils';
|
} from 'src/utils';
|
||||||
import { ConfigService } from '@nestjs/config';
|
import { ConfigService } from '@nestjs/config';
|
||||||
@@ -106,6 +105,10 @@ export class InfraConfigService implements OnModuleInit {
|
|||||||
name: InfraConfigEnum.MICROSOFT_SCOPE,
|
name: InfraConfigEnum.MICROSOFT_SCOPE,
|
||||||
value: process.env.MICROSOFT_SCOPE,
|
value: process.env.MICROSOFT_SCOPE,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MICROSOFT_TENANT,
|
||||||
|
value: process.env.MICROSOFT_TENANT,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: InfraConfigEnum.VITE_ALLOWED_AUTH_PROVIDERS,
|
name: InfraConfigEnum.VITE_ALLOWED_AUTH_PROVIDERS,
|
||||||
value: getConfiguredSSOProviders(),
|
value: getConfiguredSSOProviders(),
|
||||||
@@ -278,7 +281,8 @@ export class InfraConfigService implements OnModuleInit {
|
|||||||
configMap.MICROSOFT_CLIENT_ID &&
|
configMap.MICROSOFT_CLIENT_ID &&
|
||||||
configMap.MICROSOFT_CLIENT_SECRET &&
|
configMap.MICROSOFT_CLIENT_SECRET &&
|
||||||
configMap.MICROSOFT_CALLBACK_URL &&
|
configMap.MICROSOFT_CALLBACK_URL &&
|
||||||
configMap.MICROSOFT_SCOPE
|
configMap.MICROSOFT_SCOPE &&
|
||||||
|
configMap.MICROSOFT_TENANT
|
||||||
);
|
);
|
||||||
case AuthProvider.EMAIL:
|
case AuthProvider.EMAIL:
|
||||||
return configMap.MAILER_SMTP_URL && configMap.MAILER_ADDRESS_FROM;
|
return configMap.MAILER_SMTP_URL && configMap.MAILER_ADDRESS_FROM;
|
||||||
@@ -455,8 +459,7 @@ export class InfraConfigService implements OnModuleInit {
|
|||||||
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
break;
|
break;
|
||||||
case InfraConfigEnumForClient.GOOGLE_SCOPE:
|
case InfraConfigEnumForClient.GOOGLE_SCOPE:
|
||||||
if (!validateSSOScope(infraConfigs[i].value))
|
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
|
||||||
break;
|
break;
|
||||||
case InfraConfigEnumForClient.GITHUB_CLIENT_ID:
|
case InfraConfigEnumForClient.GITHUB_CLIENT_ID:
|
||||||
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
@@ -469,8 +472,7 @@ export class InfraConfigService implements OnModuleInit {
|
|||||||
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
break;
|
break;
|
||||||
case InfraConfigEnumForClient.GITHUB_SCOPE:
|
case InfraConfigEnumForClient.GITHUB_SCOPE:
|
||||||
if (!validateSSOScope(infraConfigs[i].value))
|
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
|
||||||
break;
|
break;
|
||||||
case InfraConfigEnumForClient.MICROSOFT_CLIENT_ID:
|
case InfraConfigEnumForClient.MICROSOFT_CLIENT_ID:
|
||||||
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
@@ -483,8 +485,10 @@ export class InfraConfigService implements OnModuleInit {
|
|||||||
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
break;
|
break;
|
||||||
case InfraConfigEnumForClient.MICROSOFT_SCOPE:
|
case InfraConfigEnumForClient.MICROSOFT_SCOPE:
|
||||||
if (!validateSSOScope(infraConfigs[i].value))
|
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
return E.left(INFRA_CONFIG_INVALID_INPUT);
|
break;
|
||||||
|
case InfraConfigEnumForClient.MICROSOFT_TENANT:
|
||||||
|
if (!infraConfigs[i].value) return E.left(INFRA_CONFIG_INVALID_INPUT);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export enum InfraConfigEnum {
|
|||||||
MICROSOFT_CLIENT_SECRET = 'MICROSOFT_CLIENT_SECRET',
|
MICROSOFT_CLIENT_SECRET = 'MICROSOFT_CLIENT_SECRET',
|
||||||
MICROSOFT_CALLBACK_URL = 'MICROSOFT_CALLBACK_URL',
|
MICROSOFT_CALLBACK_URL = 'MICROSOFT_CALLBACK_URL',
|
||||||
MICROSOFT_SCOPE = 'MICROSOFT_SCOPE',
|
MICROSOFT_SCOPE = 'MICROSOFT_SCOPE',
|
||||||
|
MICROSOFT_TENANT = 'MICROSOFT_TENANT',
|
||||||
|
|
||||||
VITE_ALLOWED_AUTH_PROVIDERS = 'VITE_ALLOWED_AUTH_PROVIDERS',
|
VITE_ALLOWED_AUTH_PROVIDERS = 'VITE_ALLOWED_AUTH_PROVIDERS',
|
||||||
|
|
||||||
@@ -42,6 +43,7 @@ export enum InfraConfigEnumForClient {
|
|||||||
MICROSOFT_CLIENT_SECRET = 'MICROSOFT_CLIENT_SECRET',
|
MICROSOFT_CLIENT_SECRET = 'MICROSOFT_CLIENT_SECRET',
|
||||||
MICROSOFT_CALLBACK_URL = 'MICROSOFT_CALLBACK_URL',
|
MICROSOFT_CALLBACK_URL = 'MICROSOFT_CALLBACK_URL',
|
||||||
MICROSOFT_SCOPE = 'MICROSOFT_SCOPE',
|
MICROSOFT_SCOPE = 'MICROSOFT_SCOPE',
|
||||||
|
MICROSOFT_TENANT = 'MICROSOFT_TENANT',
|
||||||
|
|
||||||
ALLOW_ANALYTICS_COLLECTION = 'ALLOW_ANALYTICS_COLLECTION',
|
ALLOW_ANALYTICS_COLLECTION = 'ALLOW_ANALYTICS_COLLECTION',
|
||||||
IS_FIRST_TIME_INFRA_SETUP = 'IS_FIRST_TIME_INFRA_SETUP',
|
IS_FIRST_TIME_INFRA_SETUP = 'IS_FIRST_TIME_INFRA_SETUP',
|
||||||
|
|||||||
@@ -193,22 +193,6 @@ export const validateUrl = (url: string) => {
|
|||||||
return urlRegex.test(url);
|
return urlRegex.test(url);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Validate SSO (Google, Github, Microsoft) Scope
|
|
||||||
* @param scope The scope to validate
|
|
||||||
* @returns boolean
|
|
||||||
*/
|
|
||||||
export const validateSSOScope = (scope: string) => {
|
|
||||||
if (!scope || scope.length === 0) return false;
|
|
||||||
|
|
||||||
const scopes = scope.split(',');
|
|
||||||
scopes.forEach((aScope) => {
|
|
||||||
if (aScope.length === 0) return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* String to JSON parser
|
* String to JSON parser
|
||||||
* @param {str} str The string to parse
|
* @param {str} str The string to parse
|
||||||
|
|||||||
Reference in New Issue
Block a user