From 52cd7ad6f4282b737756bf1b6d8a2e946218378b Mon Sep 17 00:00:00 2001 From: Daniel Appelgren Date: Tue, 14 Sep 2021 13:26:04 +0200 Subject: [PATCH] fix: Fix mock-api login functionality Squashed commit of the following: commit 9022427d59290dfd2b08c4a076d6b0690d44d926 Author: Daniel Appelgren Date: Mon Sep 13 13:25:05 2021 +0200 Update mock-apis --- .../mina-sidor-fa/scripts/current-user.js | 12 ++++++---- .../mina-sidor-fa/scripts/generate-api.js | 16 +++++++++++++- .../mina-sidor-fa/scripts/organizations.js | 2 +- mock-api/mina-sidor-fa/scripts/userinfo.js | 17 ++++++++++++++ mock-api/mina-sidor-fa/server.js | 22 ++++--------------- 5 files changed, 45 insertions(+), 24 deletions(-) create mode 100644 mock-api/mina-sidor-fa/scripts/userinfo.js diff --git a/mock-api/mina-sidor-fa/scripts/current-user.js b/mock-api/mina-sidor-fa/scripts/current-user.js index f1f2d2c..8751c19 100644 --- a/mock-api/mina-sidor-fa/scripts/current-user.js +++ b/mock-api/mina-sidor-fa/scripts/current-user.js @@ -9,12 +9,16 @@ const AUTHORIZATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ek function generateCurrentUser() { return { - id: faker.datatype.uuid(), + ciamUserId: faker.datatype.uuid(), firstName: faker.name.firstName(), lastName: faker.name.lastName(), - roles: ['Admin'], - organizations: chooseRandom(ORGANIZATIONS, ORGANIZATIONS.length), - authorizations: chooseRandom(AUTHORIZATIONS, faker.datatype.number(3)), + email: faker.internet.email(), + roles: ['MSFA_AuthAdmin', 'MSFA_ReceiveDeltagare', 'MSFA_ReportAndPlanning', 'MSFA_Standard'], + ssn: '7010215791', + status: 'Enabled', + tjanster: [{ tjansteKod: 'A012', namn: 'Rusta och matcha' }], + allaUtforandeVerksamheter: true, + utforandeVerksamheter: [], }; } diff --git a/mock-api/mina-sidor-fa/scripts/generate-api.js b/mock-api/mina-sidor-fa/scripts/generate-api.js index 93d2c48..77d2d24 100644 --- a/mock-api/mina-sidor-fa/scripts/generate-api.js +++ b/mock-api/mina-sidor-fa/scripts/generate-api.js @@ -2,6 +2,7 @@ import fs from 'fs'; import { authTokens } from './auth-tokens.js'; import avrop from './avrop.js'; import currentUser from './current-user.js'; +import userinfo from './userinfo.js'; import deltagare from './deltagare.js'; import employees from './employees.js'; import handledare from './handledare.js'; @@ -9,12 +10,23 @@ import languages from './languages.js'; import participants from './participants.js'; import tjanster from './tjanster.js'; import chooseRandom from './utils/choose-random.util.js'; +import organizations from './organizations.js'; + +const ORGANIZATIONS = organizations.generate(); +const AUTHORIZATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ekonomi']; const generatedEmployees = employees.generate(50); const generatedDeltagare = deltagare.generate(50); const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6)); const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare); const generatedTjanster = tjanster.generate(); +const generatedCurrentUser = currentUser.generate(); +const generatedOrganizations = chooseRandom(ORGANIZATIONS, ORGANIZATIONS.length); +const generatedUserinfo = { + ...userinfo.generate(), + firstName: generatedCurrentUser.firstName, + lastName: generatedCurrentUser.lastName, +}; const avropTjanster = []; const utforandeVerksamheter = []; const avropKommuner = []; @@ -96,7 +108,9 @@ const apiData = { ...participant, employeeId: generatedEmployees[Math.floor(Math.random() * generatedEmployees.length)].id, })), - currentUser: currentUser.generate(), + currentUser: generatedCurrentUser, + organizations: generatedOrganizations, + userinfo: generatedUserinfo, getTokenFullAccess: authTokens.auth_code_from_CIAM_with_all_permissions, invites: [], minaDeltagare: chooseRandom(generatedAvrop, 3), diff --git a/mock-api/mina-sidor-fa/scripts/organizations.js b/mock-api/mina-sidor-fa/scripts/organizations.js index 521de92..7970216 100644 --- a/mock-api/mina-sidor-fa/scripts/organizations.js +++ b/mock-api/mina-sidor-fa/scripts/organizations.js @@ -8,7 +8,7 @@ function generateOrganizations(amount = 4) { for (let i = 1; i <= amount; ++i) { organizations.push({ name: faker.company.companyName(), - organizationNumber: faker.datatype.uuid(), + organizationnumber: faker.datatype.uuid(), }); } diff --git a/mock-api/mina-sidor-fa/scripts/userinfo.js b/mock-api/mina-sidor-fa/scripts/userinfo.js new file mode 100644 index 0000000..0afa7cd --- /dev/null +++ b/mock-api/mina-sidor-fa/scripts/userinfo.js @@ -0,0 +1,17 @@ +import faker from 'faker'; +import organizations from './organizations.js'; + +faker.locale = 'sv'; + +function generateUserInfo() { + return { + userId: faker.datatype.uuid(), + email: faker.internet.email(), + signature: 'mocky', + roles: ['MSFA_ReportAndPlanning', 'MSFA_ReceiveDeltagare', 'MSFA_Standard', 'MSFA_AuthAdmin'], + }; +} + +export default { + generate: generateUserInfo, +}; diff --git a/mock-api/mina-sidor-fa/server.js b/mock-api/mina-sidor-fa/server.js index f21166e..19000ae 100644 --- a/mock-api/mina-sidor-fa/server.js +++ b/mock-api/mina-sidor-fa/server.js @@ -12,15 +12,16 @@ server.use( '*sort=utforandeVerksamhet*': '$1sort=utforandeVerksamhet[0]$2', '*sort=tjanst*': '$1sort=tjanst[0]$2', '/users/invite*': '/invites$1', - '/users*': '/employees$1', '/employees*search=*': '/employees$1fullName_like=$2', '/employees*onlyEmployeesWithoutAuthorization=*': '/employees$1roles.length_lte=1', '/employees*': '/employees$1', '/services*': '/tjanster$1', '/participants': '/participants?_embed=employees', '/participant/:id': '/participants/:id?_embed=employees', - '/auth/userinfo': '/currentUser', - '/auth/organizations': '/currentUser', + '/auth/userinfo': '/userinfo', + '/auth/organizations': '/organizations', + '/users/currentUser': '/currentUser', + '/users*': '/employees$1', '/avrop/tjanster*': '/avropTjanster$1', '/avrop/handledare*': '/handledare$1', '/avrop/utforandeverksamheter*': '/utforandeVerksamheter$1', @@ -80,25 +81,10 @@ router.render = (req, res) => { } let data = res.locals.data; - const employeeRegex = /(?:\/users\/)(.*)/; - const isEmployeePath = employeeRegex.exec(pathname); const deltagareRegex = /(?:\/deltagare\/)(?:\d*\/)(contact|driverlicense|educationlevels\/highest|educations|translator|work\/disabilities|work\/languages|work\/experiences)/g; const isDeltagarePath = deltagareRegex.exec(pathname); const avropRegex = /(?:\/avrop\/(?:tjanster|utforandeverksamheter|kommuner|\d))|(?:\/deltagare\/\d\/(avrop))/g; const isAvropPath = avropRegex.exec(pathname); - const authRegex = /(?:\/auth\/)(userinfo|organizations)/g; - const isAuthPath = authRegex.exec(pathname); - - if (isAuthPath) { - const authSubPath = isAuthPath[1]; - - if (authSubPath === 'organizations') { - data = res.locals.data[authSubPath].map(organization => ({ - name: organization.name, - organizationnumber: organization.organizationNumber, - })); - } - } if (isDeltagarePath) { const deltagareSubPath = getDeltagareSubPath(isDeltagarePath[1]);