diff --git a/packages/hoppscotch-backend/src/auth/guards/github-sso.guard.ts b/packages/hoppscotch-backend/src/auth/guards/github-sso.guard.ts index a76b13c8f..7eb935956 100644 --- a/packages/hoppscotch-backend/src/auth/guards/github-sso.guard.ts +++ b/packages/hoppscotch-backend/src/auth/guards/github-sso.guard.ts @@ -1,8 +1,16 @@ -import { ExecutionContext, Injectable } from '@nestjs/common'; +import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; +import { AuthProvider, authProviderCheck, throwHTTPErr } from '../helper'; @Injectable() -export class GithubSSOGuard extends AuthGuard('github') { +export class GithubSSOGuard extends AuthGuard('github') implements CanActivate { + canActivate(context: ExecutionContext): boolean { + if (!authProviderCheck(AuthProvider.GITHUB)) + throwHTTPErr({ message: 'GitHub auth is not enabled', statusCode: 404 }); + + return true; + } + getAuthenticateOptions(context: ExecutionContext) { const req = context.switchToHttp().getRequest(); diff --git a/packages/hoppscotch-backend/src/auth/guards/google-sso.guard.ts b/packages/hoppscotch-backend/src/auth/guards/google-sso.guard.ts index ea5094a1a..c238231c6 100644 --- a/packages/hoppscotch-backend/src/auth/guards/google-sso.guard.ts +++ b/packages/hoppscotch-backend/src/auth/guards/google-sso.guard.ts @@ -1,8 +1,16 @@ -import { ExecutionContext, Injectable } from '@nestjs/common'; +import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; +import { AuthProvider, authProviderCheck, throwHTTPErr } from '../helper'; @Injectable() -export class GoogleSSOGuard extends AuthGuard('google') { +export class GoogleSSOGuard extends AuthGuard('google') implements CanActivate { + canActivate(context: ExecutionContext): boolean { + if (!authProviderCheck(AuthProvider.GOOGLE)) + throwHTTPErr({ message: 'Google auth is not enabled', statusCode: 404 }); + + return true; + } + getAuthenticateOptions(context: ExecutionContext) { const req = context.switchToHttp().getRequest(); diff --git a/packages/hoppscotch-backend/src/auth/guards/microsoft-sso-.guard.ts b/packages/hoppscotch-backend/src/auth/guards/microsoft-sso-.guard.ts index 8479c57cb..07d2940ab 100644 --- a/packages/hoppscotch-backend/src/auth/guards/microsoft-sso-.guard.ts +++ b/packages/hoppscotch-backend/src/auth/guards/microsoft-sso-.guard.ts @@ -1,8 +1,22 @@ -import { ExecutionContext, Injectable } from '@nestjs/common'; +import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; +import { AuthProvider, authProviderCheck, throwHTTPErr } from '../helper'; @Injectable() -export class MicrosoftSSOGuard extends AuthGuard('microsoft') { +export class MicrosoftSSOGuard + extends AuthGuard('microsoft') + implements CanActivate +{ + canActivate(context: ExecutionContext): boolean { + if (!authProviderCheck(AuthProvider.MICROSOFT)) + throwHTTPErr({ + message: 'Microsoft auth is not enabled', + statusCode: 404, + }); + + return true; + } + getAuthenticateOptions(context: ExecutionContext) { const req = context.switchToHttp().getRequest();