From 7d08aa6d89c48072caa5e36f3221a2b4d86741ac Mon Sep 17 00:00:00 2001 From: ShootingStar91 Date: Tue, 28 Nov 2023 10:45:42 +0200 Subject: [PATCH] Katselmus-iams create special group called katselmusViewer --- src/auth/IAMConfig.js | 17 +++++++++++++++++ src/auth/IAMRights.js | 19 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/auth/IAMConfig.js b/src/auth/IAMConfig.js index c73d9d7..17a5de7 100644 --- a/src/auth/IAMConfig.js +++ b/src/auth/IAMConfig.js @@ -430,6 +430,19 @@ const oodikoneIams = [ 'hy-ypa-henkilosto', ] +const katselmusViewerIams = ['grp-katselmus-ttdk', +'grp-katselmus-oiktdk', +'grp-katselmus-ltdk', +'grp-katselmus-humtdk', +'grp-katselmus-mltdk', +'grp-katselmus-ftdk', +'grp-katselmus-bytdk', +'grp-katselmus-ktdk', +'grp-katselmus-valttdk', +'grp-katselmus-sockom', +'grp-katselmus-mmtdk', +'grp-katselmus-eltdk'] + const isSuperAdminIam = (iam) => superAdminGroups.includes(iam) const isAdminIam = (iam) => adminGroups.includes(iam) @@ -442,6 +455,8 @@ const isJoryIam = (iam) => joryGroups.includes(iam) const isKosuIam = (iam) => kosuGroups.includes(iam) +const isKatselmusViewer = (iam) => katselmusViewerIams.includes(iam) + const isUniversityWideIam = (iam) => universityWideGroups.includes(iam) const isDoctoralIam = (iam) => doctoralIams.includes(iam) @@ -503,6 +518,7 @@ const relevantIAMs = [] .concat(hyOneGroups) .concat(employeeGroups) .concat(oodikoneIams) + .concat(katselmusViewerIams) const RELEVANT_ORGANISATION_CODES = [ 'H930', // Avoin yliopisto @@ -538,5 +554,6 @@ module.exports = { isStudyLeaderGroup, relevantIAMs, relevantOrganisations, + isKatselmusViewer, ANY, } diff --git a/src/auth/IAMRights.js b/src/auth/IAMRights.js index 49decd2..4037511 100644 --- a/src/auth/IAMRights.js +++ b/src/auth/IAMRights.js @@ -14,6 +14,7 @@ const { dekaaniIamToFaculty, opetusVaradekaani, isStudyLeaderGroup, + isKatselmusViewer, } = require('./IAMConfig') const { data } = require('./data') const { mapToDegreeCode } = require('./common') @@ -120,6 +121,22 @@ const getKosu = (hyGroups) => { return {} } +/** + * Needed for Oodikone + * Grant katselmusViewer special group, which means that the user can see oodikone's + * evaluationoverview which is linked in tilannekuvalomake + * @param {string[]} hyGroups + * @returns katselmusViewer special group + */ +const getKatselmusViewer = (hyGroups) => { + const katselmusViewer = hyGroups.some(isKatselmusViewer) + console.log({ katselmusViewer, hyGroups, isKatselmusViewer }) + if (katselmusViewer) { + return { specialGroup: { katselmusViewer: true } } + } + return {} +} + /** * Get special groups based on IAM-groups * @param {string[]} hyGroups @@ -127,7 +144,7 @@ const getKosu = (hyGroups) => { const getSpecialGroups = (hyGroups) => { let specialGroup = {} - ;[getAdmin, getSuperAdmin, getOpenUni, getHyOne, getJory, getKosu] + ;[getAdmin, getSuperAdmin, getOpenUni, getHyOne, getJory, getKosu, getKatselmusViewer] .map((f) => f(hyGroups)) .forEach(({ specialGroup: newSpecialGroup }) => { specialGroup = { ...specialGroup, ...newSpecialGroup }