Skip to content

Commit b59591d

Browse files
authored
Merge pull request #2364 from bcgov/feature/eac-166
Permission fix
2 parents 6f2b30b + 08cc7b0 commit b59591d

File tree

2 files changed

+16
-55
lines changed

2 files changed

+16
-55
lines changed

backend/src/components/cache-service.js

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@ const constants = require('../util/constants');
1111

1212
let sdcStaffDistrictPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW', 'DIS_SDC_EDIT', 'DIS_SDC_VIEW', 'SCH_SDC_EDIT', 'SCH_SDC_VIEW'];
1313
let sdcStaffSchoolPermissions = ['EDX_SCHOOL_VIEW', 'SCH_SDC_EDIT', 'SCH_SDC_VIEW'];
14-
let gradStaffAdminSchoolPermissions = ['EDX_SCHOOL_VIEW', 'GRAD_SCH_TVR_VIEW', 'GRAD_SCH_RPT_VIEW', 'GRAD_SCH_UPLOAD', 'GRAD_ERR_RPT_VIEW', 'EAS_SCH_EDIT'];
15-
let gradStaffViewSchoolPermissions = ['EDX_SCHOOL_VIEW', 'GRAD_SCH_TVR_VIEW', 'GRAD_SCH_RPT_VIEW', 'GRAD_ERR_RPT_VIEW'];
16-
let gradStaffAdminDistrictPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW', 'GRAD_DIS_TVR_VIEW', 'GRAD_DIS_RPT_VIEW', 'GRAD_DIS_UPLOAD', 'GRAD_ERR_RPT_VIEW', 'EAS_DIS_EDIT', 'CHALLENGE_REPORTS'];
17-
let gradStaffViewDistrictPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW', 'GRAD_DIS_TVR_VIEW', 'GRAD_DIS_RPT_VIEW', 'GRAD_ERR_RPT_VIEW'];
18-
let assessmentStaffAdminSchoolPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW','EAS_SCH_EDIT', 'EAS_SCH_VIEW'];
19-
let assessmentStaffAdminDistrictPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW','EAS_DIS_EDIT', 'EAS_DIS_VIEW'];
14+
let gradStaffAdminSchoolPermissions = ['EDX_SCHOOL_VIEW', 'GRAD_SCH_TVR_VIEW', 'GRAD_SCH_RPT_VIEW', 'GRAD_SCH_UPLOAD', 'GRAD_ERR_RPT_VIEW', 'EAS_SCH_EDIT', 'EAS_SCH_VIEW'];
15+
let gradStaffViewSchoolPermissions = ['EDX_SCHOOL_VIEW', 'GRAD_SCH_TVR_VIEW', 'GRAD_SCH_RPT_VIEW', 'GRAD_ERR_RPT_VIEW', 'EAS_SCH_VIEW'];
16+
let gradStaffAdminDistrictPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW', 'GRAD_DIS_TVR_VIEW', 'GRAD_DIS_RPT_VIEW', 'GRAD_DIS_UPLOAD', 'GRAD_ERR_RPT_VIEW', 'EAS_DIS_EDIT', 'CHALLENGE_REPORTS', 'EAS_DIS_VIEW'];
17+
let gradStaffViewDistrictPermissions = ['EDX_DISTRICT_VIEW', 'EDX_SCHOOL_VIEW', 'GRAD_DIS_TVR_VIEW', 'GRAD_DIS_RPT_VIEW', 'GRAD_ERR_RPT_VIEW', 'EAS_DIS_VIEW'];
2018
let schoolMap = new Map();
2119
let districtToSchoolsMap = new Map();
2220
let schools = [];
@@ -195,18 +193,12 @@ const cacheService = {
195193
getGradStaffSchoolAdminPermissions() {
196194
return gradStaffAdminSchoolPermissions;
197195
},
198-
getAssessmentStaffSchoolAdminPermissions() {
199-
return assessmentStaffAdminSchoolPermissions;
200-
},
201196
getGradStaffSchoolViewerPermissions() {
202197
return gradStaffViewSchoolPermissions;
203198
},
204199
getGradStaffDistrictAdminPermissions() {
205200
return gradStaffAdminDistrictPermissions;
206201
},
207-
getAssessmentStaffDistrictAdminPermissions() {
208-
return assessmentStaffAdminDistrictPermissions;
209-
},
210202
getGradStaffDistrictViewerPermissions() {
211203
return gradStaffViewDistrictPermissions;
212204
},

backend/src/components/secureExchange.js

Lines changed: 12 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -962,7 +962,7 @@ async function setInstituteTypeIdentifierAndRedirect(req, res) {
962962
}
963963
}
964964

965-
async function setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, isGradAdmin, isAssessmentAdmin) {
965+
async function setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, isGradAdmin) {
966966
log.info('Set InstituteTypeIdentifierAndRedirectToSchool And Redirect called');
967967

968968
if(sdcSchoolCollectionID && schoolID){
@@ -973,10 +973,6 @@ async function setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, scho
973973
log.info('Staff admin user logged in, redirecting to selected school');
974974
setGradStaffAdminSessionInstituteIdentifiers(req, schoolID, 'SCHOOL');
975975
res.redirect(config.get('server:frontend') + '/graduation/' + schoolID);
976-
}else if(directToGrad && schoolID && isAssessmentAdmin){
977-
log.info('Staff admin user logged in, redirecting to selected school');
978-
setAssessmentStaffAdminSessionInstituteIdentifiers(req, schoolID, 'SCHOOL');
979-
res.redirect(config.get('server:frontend') + '/graduation/' + schoolID);
980976
} else if(directToGrad && schoolID && !isGradAdmin){
981977
log.info('Staff viewer user logged in, redirecting to selected school');
982978
setGradStaffViewerSessionInstituteIdentifiers(req, schoolID, 'SCHOOL');
@@ -987,7 +983,7 @@ async function setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, scho
987983
}
988984
}
989985

990-
async function setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, isGradAdmin, isAssessmentAdmin) {
986+
async function setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, isGradAdmin) {
991987
log.info('Set InstituteTypeIdentifierAndRedirectToDistrict And Redirect called');
992988

993989
if(sdcDistrictCollectionID && districtID){
@@ -998,10 +994,6 @@ async function setInstituteTypeIdentifierAndRedirectToDistrict(req, res, distric
998994
log.info('Staff admin user logged in, redirecting to selected district');
999995
setGradStaffAdminSessionInstituteIdentifiers(req, districtID, 'DISTRICT');
1000996
res.redirect(config.get('server:frontend') + '/graduation/' + districtID);
1001-
}else if(directToGrad && districtID && isAssessmentAdmin){
1002-
log.info('Staff admin user logged in, redirecting to selected district');
1003-
setAssessmentStaffAdminSessionInstituteIdentifiers(req, districtID, 'DISTRICT');
1004-
res.redirect(config.get('server:frontend') + '/graduation/' + districtID);
1005997
} else if(directToGrad && districtID && !isGradAdmin){
1006998
log.info('Staff viewer user logged in, redirecting to selected district');
1007999
setGradStaffViewerSessionInstituteIdentifiers(req, districtID, 'DISTRICT');
@@ -1033,9 +1025,9 @@ function getAndSetupStaffUserAndRedirectWithSchoolCollectionLink(req, res, acces
10331025
res.redirect(config.get('server:frontend') + '/unauthorizedNoEDXUser');
10341026
return;
10351027
}
1036-
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, false, false);
1028+
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, false);
10371029
});
1038-
}else if((roles.includes('GRAD_DATA_COLLECTION_ADMIN') || (roles.includes('GRAD_DATA_COLLECTION_VIEWER')) || (roles.includes('ASSESSMENT_ADMIN'))) && directToGrad){
1030+
} else if((roles.includes('GRAD_DATA_COLLECTION_ADMIN') || (roles.includes('GRAD_DATA_COLLECTION_VIEWER')) || (roles.includes('ASSESSMENT_ADMIN'))) && directToGrad){
10391031
Promise.all([
10401032
getData(accessToken, config.get('edx:edxUsersURL') + '/user-schools', req.session.correlationID)
10411033
])
@@ -1046,14 +1038,10 @@ function getAndSetupStaffUserAndRedirectWithSchoolCollectionLink(req, res, acces
10461038
}
10471039
});
10481040

1049-
if(roles.includes('GRAD_DATA_COLLECTION_ADMIN')){
1050-
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, true, false);
1051-
}
1052-
else if (roles.includes('ASSESSMENT_ADMIN')){
1053-
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, false, true);
1054-
}
1055-
else{
1056-
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, false, false);
1041+
if(roles.includes('GRAD_DATA_COLLECTION_ADMIN') || roles.includes('ASSESSMENT_ADMIN')){
1042+
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, true);
1043+
} else{
1044+
await setStaffInstituteTypeIdentifierAndRedirectToSchool(req, res, schoolID, sdcSchoolCollectionID, directToGrad, false);
10571045
}
10581046
});
10591047
}else{
@@ -1102,13 +1090,10 @@ function getAndSetupStaffUserAndRedirectWithDistrictCollectionLink(req, res, acc
11021090
return !!isDistrictActive(cacheService.getDistrictJSONByDistrictID(el));
11031091
});//this is list of active districtIDs associated to the user
11041092

1105-
if(roles.includes('GRAD_DATA_COLLECTION_ADMIN')){
1106-
await setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, true, false);
1107-
}else if (roles.includes('ASSESSMENT_ADMIN')) {
1108-
await setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, true, true);
1109-
}
1110-
else{
1111-
await setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, false, false);
1093+
if(roles.includes('GRAD_DATA_COLLECTION_ADMIN') || roles.includes('ASSESSMENT_ADMIN')){
1094+
await setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, true);
1095+
} else{
1096+
await setInstituteTypeIdentifierAndRedirectToDistrict(req, res, districtID, sdcDistrictCollectionID, directToGrad, false);
11121097
}
11131098
});
11141099
} else{
@@ -1189,22 +1174,6 @@ function setGradStaffAdminSessionInstituteIdentifiers(req, activeInstituteIdenti
11891174
req.session.activeInstitutePermissions = permissionsArray;
11901175
}
11911176

1192-
function setAssessmentStaffAdminSessionInstituteIdentifiers(req, activeInstituteIdentifier, activeInstituteType) {
1193-
req.session.activeInstituteIdentifier = activeInstituteIdentifier;
1194-
req.session.activeInstituteType = activeInstituteType;
1195-
let permissionsArray = [];
1196-
1197-
if(req.session.passport.user._json.idir_guid){
1198-
if(activeInstituteType === 'SCHOOL') {
1199-
permissionsArray = cacheService.getAssessmentStaffSchoolAdminPermissions();
1200-
} else {
1201-
permissionsArray = cacheService.getAssessmentStaffDistrictAdminPermissions();
1202-
}
1203-
}
1204-
1205-
req.session.activeInstitutePermissions = permissionsArray;
1206-
}
1207-
12081177
function setGradStaffViewerSessionInstituteIdentifiers(req, activeInstituteIdentifier, activeInstituteType) {
12091178
req.session.activeInstituteIdentifier = activeInstituteIdentifier;
12101179
req.session.activeInstituteType = activeInstituteType;

0 commit comments

Comments
 (0)