From 4cb6059ebfda97b69363ff580777d86616a8a2b2 Mon Sep 17 00:00:00 2001 From: Lee365 Date: Wed, 17 Jul 2024 11:39:22 +0100 Subject: [PATCH] FPO-292 --- src/app.ts | 1 + src/config/main-navigation-options.ts | 16 ++++++++++++++-- src/routes/index.ts | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/app.ts b/src/app.ts index 0757686f..28ed3e29 100644 --- a/src/app.ts +++ b/src/app.ts @@ -54,6 +54,7 @@ if (isDev) { app.use(httpRequestLoggingMiddleware()) app.use(scpConfiguration.middleware) nunjucksConfiguration.addGlobal('baseURL', scpConfiguration.baseURL) + app.set('baseURL', scpConfiguration.baseURL) } configureSecurity(app) diff --git a/src/config/main-navigation-options.ts b/src/config/main-navigation-options.ts index 81321045..6c84a897 100644 --- a/src/config/main-navigation-options.ts +++ b/src/config/main-navigation-options.ts @@ -1,4 +1,5 @@ import { type NextFunction, type Response } from 'express' +import { logger } from './logging' export default function (req: any, res: Response, next: NextFunction): void { const mainNavigation: any = [] @@ -11,8 +12,19 @@ export default function (req: any, res: Response, next: NextFunction): void { }) const userProfile = req.appSession?.userProfile ?? {} - const profileUrl = userProfile.profile ?? null - const groupUrl = userProfile['bas:groupProfile'] ?? null + let profileUrl = userProfile.profile ?? null + let groupUrl = userProfile['bas:groupProfile'] ?? null + const baseUrl = req.app.get('baseURL') + const returnURL = baseUrl + '/dashboard' + + if (profileUrl != null) { + profileUrl = profileUrl + '?redirect_uri=' + encodeURIComponent(returnURL) + '/auth/profile-redirect' + } + + if (groupUrl != null) { + groupUrl = groupUrl + '?redirect_uri=' + encodeURIComponent(returnURL) + '/auth/group-redirect' + } + logger.debug(`scpConfigBaseURL: ${baseUrl} for userProfile: ${profileUrl} and groupUrl: ${groupUrl}`) mainNavigation.push({ href: profileUrl, diff --git a/src/routes/index.ts b/src/routes/index.ts index 08d0a4af..c3bad603 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -8,6 +8,7 @@ import { cookiesPage } from '../controllers/cookiesController' import { rejectedPage } from '../controllers/rejectedController' import { requiresAuth } from 'express-openid-connect' import { body } from 'express-validator' +import { showDashboard } from '../controllers/dashboardController' const healthchecksController = new HealthchecksController() const router: Router = express.Router() @@ -17,6 +18,8 @@ router.get('/healthcheck', (req, res) => { healthchecksController.show(req, res) router.get('/healthcheckz', (req, res) => { healthchecksController.showz(req, res) }) router.get('/privacyPolicy', privacyPolicyPage) router.get('/cookies', cookiesPage) +router.get('/auth/profile-redirect', showDashboard) +router.get('/auth/group-redirect', showDashboard) const isProduction = (process.env.NODE_ENV ?? 'development') === 'production'