From a72b1feda5bbaaff493b534d0e67438d49235bd7 Mon Sep 17 00:00:00 2001 From: Mir Arif Hasan Date: Fri, 28 Jul 2023 18:26:42 +0600 Subject: [PATCH] chore: handled internal server error for missing auth providers --- .../src/auth/guards/github-sso.guard.ts | 12 ++++++++++-- .../src/auth/guards/google-sso.guard.ts | 12 ++++++++++-- .../src/auth/guards/microsoft-sso-.guard.ts | 18 ++++++++++++++++-- 3 files changed, 36 insertions(+), 6 deletions(-) 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();