From 5be3b101a5c1383bceab6e5852a4597619bb6070 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 17:58:52 +0100 Subject: [PATCH 1/8] feat: Implement saml auth provider factory --- .../test/factories/saml-auth-provider.ee.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/backend/test/factories/saml-auth-provider.ee.js diff --git a/packages/backend/test/factories/saml-auth-provider.ee.js b/packages/backend/test/factories/saml-auth-provider.ee.js new file mode 100644 index 00000000..e18bc4c6 --- /dev/null +++ b/packages/backend/test/factories/saml-auth-provider.ee.js @@ -0,0 +1,33 @@ +import { createRole } from './role'; +import SamlAuthProvider from '../../src/models/saml-auth-provider.ee.js'; + +export const createSamlAuthProvider = async (params = {}) => { + params.name = params?.name || 'Keycloak SAML'; + params.certificate = params?.certificate || 'certificate'; + params.signatureAlgorithm = params?.signatureAlgorithm || 'sha512'; + + params.entryPoint = + params?.entryPoint || + 'https://example.com/auth/realms/automatisch/protocol/saml'; + + params.issuer = params?.issuer || 'automatisch-client'; + + params.firstnameAttributeName = + params?.firstnameAttributeName || 'urn:oid:2.1.1.42'; + + params.surnameAttributeName = + params?.surnameAttributeName || 'urn:oid:2.1.1.4'; + + params.emailAttributeName = + params?.emailAttributeName || 'urn:oid:1.1.2342.19200300.100.1.1'; + + params.roleAttributeName = params?.roleAttributeName || 'Role'; + params.defaultRoleId = params?.defaultRoleId || (await createRole()).id; + params.active = params?.active || true; + + const samlAuthProvider = await SamlAuthProvider.query() + .insert(params) + .returning('*'); + + return samlAuthProvider; +}; From 93bcdfd9c9ab90acd0ec8ca5af19388cffe2193f Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 17:59:18 +0100 Subject: [PATCH 2/8] feat: Implement saml auth provider serializer --- .../src/serializers/saml-auth-provider.ee.js | 18 +++++++++++ .../serializers/saml-auth-provider.ee.test.js | 32 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 packages/backend/src/serializers/saml-auth-provider.ee.js create mode 100644 packages/backend/src/serializers/saml-auth-provider.ee.test.js diff --git a/packages/backend/src/serializers/saml-auth-provider.ee.js b/packages/backend/src/serializers/saml-auth-provider.ee.js new file mode 100644 index 00000000..43422704 --- /dev/null +++ b/packages/backend/src/serializers/saml-auth-provider.ee.js @@ -0,0 +1,18 @@ +const samlAuthProviderSerializer = (samlAuthProvider) => { + return { + id: samlAuthProvider.id, + name: samlAuthProvider.name, + certificate: samlAuthProvider.certificate, + signatureAlgorithm: samlAuthProvider.signatureAlgorithm, + issuer: samlAuthProvider.issuer, + entryPoint: samlAuthProvider.entryPoint, + firstnameAttributeName: samlAuthProvider.firstnameAttributeName, + surnameAttributeName: samlAuthProvider.surnameAttributeName, + emailAttributeName: samlAuthProvider.emailAttributeName, + roleAttributeName: samlAuthProvider.roleAttributeName, + active: samlAuthProvider.active, + defaultRoleId: samlAuthProvider.defaultRoleId, + }; +}; + +export default samlAuthProviderSerializer; diff --git a/packages/backend/src/serializers/saml-auth-provider.ee.test.js b/packages/backend/src/serializers/saml-auth-provider.ee.test.js new file mode 100644 index 00000000..86250b72 --- /dev/null +++ b/packages/backend/src/serializers/saml-auth-provider.ee.test.js @@ -0,0 +1,32 @@ +import { describe, it, expect, beforeEach } from 'vitest'; +import { createSamlAuthProvider } from '../../test/factories/saml-auth-provider.ee.js'; +import samlAuthProviderSerializer from './saml-auth-provider.ee.js'; + +describe('samlAuthProviderSerializer', () => { + let samlAuthProvider; + + beforeEach(async () => { + samlAuthProvider = await createSamlAuthProvider(); + }); + + it('should return saml auth provider data', async () => { + const expectedPayload = { + id: samlAuthProvider.id, + name: samlAuthProvider.name, + certificate: samlAuthProvider.certificate, + signatureAlgorithm: samlAuthProvider.signatureAlgorithm, + issuer: samlAuthProvider.issuer, + entryPoint: samlAuthProvider.entryPoint, + firstnameAttributeName: samlAuthProvider.firstnameAttributeName, + surnameAttributeName: samlAuthProvider.surnameAttributeName, + emailAttributeName: samlAuthProvider.emailAttributeName, + roleAttributeName: samlAuthProvider.roleAttributeName, + active: samlAuthProvider.active, + defaultRoleId: samlAuthProvider.defaultRoleId, + }; + + expect(samlAuthProviderSerializer(samlAuthProvider)).toEqual( + expectedPayload + ); + }); +}); From 50d38ffbd82a413432dd5aabd51753aeab66c4b2 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 21:14:54 +0100 Subject: [PATCH 3/8] chore: Make http log level lower than info --- packages/backend/src/helpers/logger.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/helpers/logger.js b/packages/backend/src/helpers/logger.js index c929e5ac..d202869c 100644 --- a/packages/backend/src/helpers/logger.js +++ b/packages/backend/src/helpers/logger.js @@ -4,8 +4,8 @@ import appConfig from '../config/app.js'; const levels = { error: 0, warn: 1, - info: 2, - http: 3, + http: 2, + info: 3, debug: 4, }; From a445538e81c294b0d5573edda80f75f31f64a44b Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 21:22:36 +0100 Subject: [PATCH 4/8] feat: Implement isCheckEnterprise middleware --- packages/backend/src/helpers/check-is-enterprise.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/backend/src/helpers/check-is-enterprise.js diff --git a/packages/backend/src/helpers/check-is-enterprise.js b/packages/backend/src/helpers/check-is-enterprise.js new file mode 100644 index 00000000..0180eea2 --- /dev/null +++ b/packages/backend/src/helpers/check-is-enterprise.js @@ -0,0 +1,9 @@ +import { hasValidLicense } from './license.ee.js'; + +export const checkIsEnterprise = async (request, response, next) => { + if (await hasValidLicense()) { + next(); + } else { + return response.status(404).end(); + } +}; From 2d6d2430d2621948768bbba75f5038489834e75f Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 21:46:20 +0100 Subject: [PATCH 5/8] fix: Detect types also for not paginated arrays --- packages/backend/src/helpers/renderer.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/backend/src/helpers/renderer.js b/packages/backend/src/helpers/renderer.js index a465e73d..ac3fa46d 100644 --- a/packages/backend/src/helpers/renderer.js +++ b/packages/backend/src/helpers/renderer.js @@ -15,6 +15,8 @@ const renderObject = (response, object) => { let data = isPaginated(object) ? object.records : object; const type = isPaginated(object) ? object.records[0].constructor.name + : Array.isArray(object) + ? object[0].constructor.name : object.constructor.name; const serializer = serializers[type]; From 6fe9a548ad32a9cc6dee1f13185e3379461148b2 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 21:48:06 +0100 Subject: [PATCH 6/8] feat: Implement get saml auth providers API endpoint --- .../get-saml-auth-providers.ee.js | 11 +++++ .../get-saml-auth-providers.ee.test.js | 46 +++++++++++++++++++ packages/backend/src/helpers/authorization.js | 4 ++ .../routes/api/v1/saml-auth-providers.ee.js | 17 +++++++ packages/backend/src/routes/index.js | 2 + packages/backend/src/serializers/index.js | 2 + .../get-saml-auth-providers.ee.js | 31 +++++++++++++ 7 files changed, 113 insertions(+) create mode 100644 packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js create mode 100644 packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js create mode 100644 packages/backend/src/routes/api/v1/saml-auth-providers.ee.js create mode 100644 packages/backend/test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js diff --git a/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js b/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js new file mode 100644 index 00000000..7297b66f --- /dev/null +++ b/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js @@ -0,0 +1,11 @@ +import { renderObject } from '../../../../helpers/renderer.js'; +import SamlAuthProvider from '../../../../models/saml-auth-provider.ee.js'; + +export default async (request, response) => { + const samlAuthProviders = await SamlAuthProvider.query().orderBy( + 'created_at', + 'desc' + ); + + renderObject(response, samlAuthProviders); +}; diff --git a/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js b/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js new file mode 100644 index 00000000..db6c716a --- /dev/null +++ b/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js @@ -0,0 +1,46 @@ +import { vi, describe, it, expect, beforeEach } from 'vitest'; +import request from 'supertest'; +import app from '../../../../app.js'; +import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js'; +import { createUser } from '../../../../../test/factories/user.js'; +import { createPermission } from '../../../../../test/factories/permission.js'; +import { createSamlAuthProvider } from '../../../../../test/factories/saml-auth-provider.ee.js'; +import getSamlAuthProvidersMock from '../../../../../test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js'; +import * as license from '../../../../helpers/license.ee.js'; + +describe('GET /api/v1/saml-auth-providers', () => { + let samlAuthProviderOne, samlAuthProviderTwo, currentUser, token; + + beforeEach(async () => { + currentUser = await createUser(); + const role = await currentUser.$relatedQuery('role'); + + await createPermission({ + roleId: role.id, + action: 'read', + subject: 'SamlAuthProvider', + conditions: [], + }); + + samlAuthProviderOne = await createSamlAuthProvider(); + samlAuthProviderTwo = await createSamlAuthProvider(); + + token = createAuthTokenByUserId(currentUser.id); + }); + + it('should return saml auth providers', async () => { + vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true); + + const response = await request(app) + .get('/api/v1/saml-auth-providers') + .set('Authorization', token) + .expect(200); + + const expectedPayload = await getSamlAuthProvidersMock([ + samlAuthProviderTwo, + samlAuthProviderOne, + ]); + + expect(response.body).toEqual(expectedPayload); + }); +}); diff --git a/packages/backend/src/helpers/authorization.js b/packages/backend/src/helpers/authorization.js index 28cefc59..28c3273e 100644 --- a/packages/backend/src/helpers/authorization.js +++ b/packages/backend/src/helpers/authorization.js @@ -7,6 +7,10 @@ const authorizationList = { action: 'read', subject: 'User', }, + '/api/v1/saml-auth-providers/': { + action: 'read', + subject: 'SamlAuthProvider', + }, }; export const authorizeUser = async (request, response, next) => { diff --git a/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js b/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js new file mode 100644 index 00000000..4f75beb2 --- /dev/null +++ b/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js @@ -0,0 +1,17 @@ +import { Router } from 'express'; +import { authenticateUser } from '../../../helpers/authentication.js'; +import { authorizeUser } from '../../../helpers/authorization.js'; +import { checkIsEnterprise } from '../../../helpers/check-is-enterprise.js'; +import getSamlAuthProvidersAction from '../../../controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js'; + +const router = Router(); + +router.get( + '/', + authenticateUser, + authorizeUser, + checkIsEnterprise, + getSamlAuthProvidersAction +); + +export default router; diff --git a/packages/backend/src/routes/index.js b/packages/backend/src/routes/index.js index 215a7326..144d9b28 100644 --- a/packages/backend/src/routes/index.js +++ b/packages/backend/src/routes/index.js @@ -5,6 +5,7 @@ import paddleRouter from './paddle.ee.js'; import healthcheckRouter from './healthcheck.js'; import automatischRouter from './api/v1/automatisch.js'; import usersRouter from './api/v1/users.js'; +import samlAuthProvidersRouter from './api/v1/saml-auth-providers.ee.js'; const router = Router(); @@ -14,5 +15,6 @@ router.use('/paddle', paddleRouter); router.use('/healthcheck', healthcheckRouter); router.use('/api/v1/automatisch', automatischRouter); router.use('/api/v1/users', usersRouter); +router.use('/api/v1/saml-auth-providers', samlAuthProvidersRouter); export default router; diff --git a/packages/backend/src/serializers/index.js b/packages/backend/src/serializers/index.js index fc4f257e..b8f30924 100644 --- a/packages/backend/src/serializers/index.js +++ b/packages/backend/src/serializers/index.js @@ -1,11 +1,13 @@ import userSerializer from './user.js'; import roleSerializer from './role.js'; import permissionSerializer from './permission.js'; +import samlAuthProviderSerializer from './saml-auth-provider.ee.js'; const serializers = { User: userSerializer, Role: roleSerializer, Permission: permissionSerializer, + SamlAuthProvider: samlAuthProviderSerializer, }; export default serializers; diff --git a/packages/backend/test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js b/packages/backend/test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js new file mode 100644 index 00000000..30d5bfc5 --- /dev/null +++ b/packages/backend/test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js @@ -0,0 +1,31 @@ +const getSamlAuthProvidersMock = async (samlAuthProviders) => { + const data = samlAuthProviders.map((samlAuthProvider) => { + return { + active: samlAuthProvider.active, + certificate: samlAuthProvider.certificate, + defaultRoleId: samlAuthProvider.defaultRoleId, + emailAttributeName: samlAuthProvider.emailAttributeName, + entryPoint: samlAuthProvider.entryPoint, + firstnameAttributeName: samlAuthProvider.firstnameAttributeName, + id: samlAuthProvider.id, + issuer: samlAuthProvider.issuer, + name: samlAuthProvider.name, + roleAttributeName: samlAuthProvider.roleAttributeName, + signatureAlgorithm: samlAuthProvider.signatureAlgorithm, + surnameAttributeName: samlAuthProvider.surnameAttributeName, + }; + }); + + return { + data: data, + meta: { + count: data.length, + currentPage: null, + isArray: true, + totalPages: null, + type: 'SamlAuthProvider', + }, + }; +}; + +export default getSamlAuthProvidersMock; From 679d0808a9f6af76f191561cd638b6d99611c200 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 22:18:15 +0100 Subject: [PATCH 7/8] refactor: Move saml auth providers endpoint to admin namespace --- .../get-saml-auth-providers.ee.js | 4 +- .../get-saml-auth-providers.ee.test.js | 39 ++++++++++++++++ .../get-saml-auth-providers.ee.test.js | 46 ------------------- packages/backend/src/helpers/authorization.js | 12 ++++- .../routes/api/v1/saml-auth-providers.ee.js | 6 +-- packages/backend/src/routes/index.js | 2 +- 6 files changed, 56 insertions(+), 53 deletions(-) rename packages/backend/src/controllers/api/v1/{ => admin}/saml-auth-providers/get-saml-auth-providers.ee.js (57%) create mode 100644 packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.test.js delete mode 100644 packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js diff --git a/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js b/packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.js similarity index 57% rename from packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js rename to packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.js index 7297b66f..2d39cc55 100644 --- a/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js +++ b/packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.js @@ -1,5 +1,5 @@ -import { renderObject } from '../../../../helpers/renderer.js'; -import SamlAuthProvider from '../../../../models/saml-auth-provider.ee.js'; +import { renderObject } from '../../../../../helpers/renderer.js'; +import SamlAuthProvider from '../../../../../models/saml-auth-provider.ee.js'; export default async (request, response) => { const samlAuthProviders = await SamlAuthProvider.query().orderBy( diff --git a/packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.test.js b/packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.test.js new file mode 100644 index 00000000..7a589821 --- /dev/null +++ b/packages/backend/src/controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.test.js @@ -0,0 +1,39 @@ +import { vi, describe, it, expect, beforeEach } from 'vitest'; +import request from 'supertest'; +import app from '../../../../../app.js'; +import createAuthTokenByUserId from '../../../../../helpers/create-auth-token-by-user-id.js'; +import { createRole } from '../../../../../../test/factories/role.js'; +import { createUser } from '../../../../../../test/factories/user.js'; +import { createSamlAuthProvider } from '../../../../../../test/factories/saml-auth-provider.ee.js'; +import getSamlAuthProvidersMock from '../../../../../../test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js'; +import * as license from '../../../../../helpers/license.ee.js'; + +describe('GET /api/v1/admin/saml-auth-providers', () => { + let samlAuthProviderOne, samlAuthProviderTwo, currentUser, token; + + beforeEach(async () => { + const role = await createRole({ key: 'admin' }); + currentUser = await createUser({ roleId: role.id }); + + samlAuthProviderOne = await createSamlAuthProvider(); + samlAuthProviderTwo = await createSamlAuthProvider(); + + token = createAuthTokenByUserId(currentUser.id); + }); + + it('should return saml auth providers', async () => { + vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true); + + const response = await request(app) + .get('/api/v1/admin/saml-auth-providers') + .set('Authorization', token) + .expect(200); + + const expectedPayload = await getSamlAuthProvidersMock([ + samlAuthProviderTwo, + samlAuthProviderOne, + ]); + + expect(response.body).toEqual(expectedPayload); + }); +}); diff --git a/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js b/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js deleted file mode 100644 index db6c716a..00000000 --- a/packages/backend/src/controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.test.js +++ /dev/null @@ -1,46 +0,0 @@ -import { vi, describe, it, expect, beforeEach } from 'vitest'; -import request from 'supertest'; -import app from '../../../../app.js'; -import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id.js'; -import { createUser } from '../../../../../test/factories/user.js'; -import { createPermission } from '../../../../../test/factories/permission.js'; -import { createSamlAuthProvider } from '../../../../../test/factories/saml-auth-provider.ee.js'; -import getSamlAuthProvidersMock from '../../../../../test/mocks/rest/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js'; -import * as license from '../../../../helpers/license.ee.js'; - -describe('GET /api/v1/saml-auth-providers', () => { - let samlAuthProviderOne, samlAuthProviderTwo, currentUser, token; - - beforeEach(async () => { - currentUser = await createUser(); - const role = await currentUser.$relatedQuery('role'); - - await createPermission({ - roleId: role.id, - action: 'read', - subject: 'SamlAuthProvider', - conditions: [], - }); - - samlAuthProviderOne = await createSamlAuthProvider(); - samlAuthProviderTwo = await createSamlAuthProvider(); - - token = createAuthTokenByUserId(currentUser.id); - }); - - it('should return saml auth providers', async () => { - vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true); - - const response = await request(app) - .get('/api/v1/saml-auth-providers') - .set('Authorization', token) - .expect(200); - - const expectedPayload = await getSamlAuthProvidersMock([ - samlAuthProviderTwo, - samlAuthProviderOne, - ]); - - expect(response.body).toEqual(expectedPayload); - }); -}); diff --git a/packages/backend/src/helpers/authorization.js b/packages/backend/src/helpers/authorization.js index 28c3273e..e1e6a3d9 100644 --- a/packages/backend/src/helpers/authorization.js +++ b/packages/backend/src/helpers/authorization.js @@ -7,7 +7,7 @@ const authorizationList = { action: 'read', subject: 'User', }, - '/api/v1/saml-auth-providers/': { + 'GET /api/v1/admin/saml-auth-providers/': { action: 'read', subject: 'SamlAuthProvider', }, @@ -24,3 +24,13 @@ export const authorizeUser = async (request, response, next) => { return response.status(403).end(); } }; + +export const authorizeAdmin = async (request, response, next) => { + const role = await request.currentUser.$relatedQuery('role'); + + if (role?.isAdmin) { + next(); + } else { + return response.status(403).end(); + } +}; diff --git a/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js b/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js index 4f75beb2..b8028b08 100644 --- a/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js +++ b/packages/backend/src/routes/api/v1/saml-auth-providers.ee.js @@ -1,15 +1,15 @@ import { Router } from 'express'; import { authenticateUser } from '../../../helpers/authentication.js'; -import { authorizeUser } from '../../../helpers/authorization.js'; +import { authorizeAdmin } from '../../../helpers/authorization.js'; import { checkIsEnterprise } from '../../../helpers/check-is-enterprise.js'; -import getSamlAuthProvidersAction from '../../../controllers/api/v1/saml-auth-providers/get-saml-auth-providers.ee.js'; +import getSamlAuthProvidersAction from '../../../controllers/api/v1/admin/saml-auth-providers/get-saml-auth-providers.ee.js'; const router = Router(); router.get( '/', authenticateUser, - authorizeUser, + authorizeAdmin, checkIsEnterprise, getSamlAuthProvidersAction ); diff --git a/packages/backend/src/routes/index.js b/packages/backend/src/routes/index.js index 144d9b28..0aec5e23 100644 --- a/packages/backend/src/routes/index.js +++ b/packages/backend/src/routes/index.js @@ -15,6 +15,6 @@ router.use('/paddle', paddleRouter); router.use('/healthcheck', healthcheckRouter); router.use('/api/v1/automatisch', automatischRouter); router.use('/api/v1/users', usersRouter); -router.use('/api/v1/saml-auth-providers', samlAuthProvidersRouter); +router.use('/api/v1/admin/saml-auth-providers', samlAuthProvidersRouter); export default router; From 1361cbc826a9d27b54feaebf4c1c571e0a77d2fd Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 19 Feb 2024 22:19:37 +0100 Subject: [PATCH 8/8] chore: Remove get saml auth providers from authorization list --- packages/backend/src/helpers/authorization.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/backend/src/helpers/authorization.js b/packages/backend/src/helpers/authorization.js index e1e6a3d9..b8d40136 100644 --- a/packages/backend/src/helpers/authorization.js +++ b/packages/backend/src/helpers/authorization.js @@ -7,10 +7,6 @@ const authorizationList = { action: 'read', subject: 'User', }, - 'GET /api/v1/admin/saml-auth-providers/': { - action: 'read', - subject: 'SamlAuthProvider', - }, }; export const authorizeUser = async (request, response, next) => {