UNPKG

rap-react

Version:

To make it easy for you to get started with GitLab, here's a list of recommended next steps.

315 lines (314 loc) 11.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.transformAssignedPermissions = exports.transformAssignablePermissions = exports.hasAccess = exports.getAssignablePermissions = exports.getAccessName = void 0; var _enums = require("../constants/enums"); var _axiosAPIClient = _interopRequireDefault(require("../api/axiosAPIClient")); var _wrapperService = require("./wrapperService"); const baseAPIUrl = process.env.REACT_APP_AUTHAPI_URL; const getAccessName = type => { switch (type) { case _enums.accessTypes.UPDATE: { return "Update"; } case _enums.accessTypes.CREATE: { return "Create"; } case _enums.accessTypes.DELETE: { return "Delete"; } case _enums.accessTypes.READ: default: { return "Read"; } } }; exports.getAccessName = getAccessName; const hasAccess = (privileges, entityName, accessType) => { let result = false; if (privileges !== undefined && privileges !== null && privileges.length > 0) { let found = privileges.find(x => x.entityName === entityName); if (found !== null && found !== undefined) { switch (accessType) { case _enums.accessTypes.CREATE: { result = found.canCreate === true; break; } case _enums.accessTypes.UPDATE: { result = found.canUpdate === true; break; } case _enums.accessTypes.DELETE: { result = found.canDelete === true; break; } default: case _enums.accessTypes.READ: { result = found.canRead === true; break; } } } } return result; }; exports.hasAccess = hasAccess; const getAssignablePermissions = async brandCode => { console.log(baseAPIUrl); console.log((0, _wrapperService.getAPIPrefix)()); // debugger; let url = "".concat(baseAPIUrl).concat((0, _wrapperService.getAPIPrefix)(), "/RolesManagement/GetAssignablePermissions?brandCode=").concat(brandCode); const permissionsResponse = await _axiosAPIClient.default.get(url); let data = await permissionsResponse.data; return data; }; exports.getAssignablePermissions = getAssignablePermissions; const transformAssignablePermissions = assignablePermissions => { let transformedObject = {}; transformedObject.headings = getArrUnchecked(); let modules = []; for (let k = 0; k < assignablePermissions.length; k++) { let permission = assignablePermissions[k]; let module = {}; module.name = permission.moduleName; module.description = permission.moduleDescription; module.expanded = true; module.accessTypes = getArrUnchecked(); let children = []; let sortedEntities = permission.entities.sort((a, b) => { return a.displayIndex < b.displayIndex ? -1 : 1; }); for (let a = 0; a < sortedEntities.length; a++) { let entity = sortedEntities[a]; let child = {}; let v = shouldConfigureNumberOfDays(entity); child.configureNumberOfDays = v; child.name = entity.entityName; child.id = entity.entityId; child.description = entity.entityDescription; child.accessTypes = getArrUnchecked(); child.isAutoAccept = entity.isAutoAccept; child.autoAcceptType = entity.autoAcceptType; child.isCorporateOnly = entity.isCorporateOnly; child.numberOfDays = entity.numberOfDays; child.indentLevel = entity.indentLevel; children.push(child); } module.children = children; modules.push(module); } transformedObject.modules = modules; return transformedObject; }; exports.transformAssignablePermissions = transformAssignablePermissions; const transformAssignedPermissions = function (assignablePermissions, assignedPermissions) { let isFranchisee = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; let transformedObject = {}; transformedObject.headings = getArr(assignedPermissions, 2); let modules = []; const getMatchedModule = module => { let assignedPermissionsModule = assignedPermissions.modulePermissions; if (assignedPermissionsModule !== null && assignedPermissionsModule !== undefined) { let matchedModule = assignedPermissions.modulePermissions.find(x => x.moduleName === module.name); return matchedModule; } return undefined; }; const getMatchedEntity = (module, entity) => { let matchedModule = getMatchedModule(module); if (matchedModule === undefined || matchedModule === null) { return undefined; } let moduleEntityPermissions = matchedModule.entityPermissions; if (moduleEntityPermissions !== null && moduleEntityPermissions !== undefined) { return matchedModule.entityPermissions.find(x => x.entityName === entity.name); } return undefined; }; if (isFranchisee === false) { let sortedModules = assignablePermissions.modules.sort((a, b) => { return a.displayOrder < b.displayOrder ? -1 : 1; }); for (let k = 0; k < sortedModules.length; k++) { let permission = sortedModules[k]; let module = {}; module.name = permission.name; module.description = permission.description; module.expanded = true; let matchedModule = getMatchedModule(module); if (matchedModule === undefined || matchedModule === null) { module.accessTypes = getArrUnchecked(); } else { module.accessTypes = getArr(matchedModule, 1); } let children = []; let sortedEntities = permission.children.sort((a, b) => { return a.displayIndex < b.displayIndex ? -1 : 1; }); for (let a = 0; a < sortedEntities.length; a++) { let entity = sortedEntities[a]; let child = {}; child.configureNumberOfDays = shouldConfigureNumberOfDays(entity); // entity.configureNumberOfDays; child.id = entity.id; child.name = entity.name; child.description = entity.description; child.displayIndex = entity.displayIndex; child.indentLevel = entity.indentLevel; let matchedEntity = getMatchedEntity(module, child); if (matchedEntity === undefined || matchedEntity === null) { child.accessTypes = getArrUnchecked(); child.numberOfDays = 0; child.isAutoAccept = false; child.autoAcceptType = null; } else { child.accessTypes = getArr(matchedEntity, 0); child.numberOfDays = matchedEntity.numberOfDays; child.isAutoAccept = matchedEntity.isAutoAccept; child.autoAcceptType = matchedEntity.autoAcceptType; } children.push(child); } module.children = children; modules.push(module); } } else { let sortedModules = assignedPermissions.modulePermissions; for (let k = 0; k < sortedModules.length; k++) { let permission = sortedModules[k]; let module = {}; module.name = permission.moduleName; module.description = permission.moduleDescription; module.expanded = true; let matchedModule = getMatchedModule(module); if (matchedModule === undefined || matchedModule === null) { module.accessTypes = getArrUnchecked(); } else { module.accessTypes = getArr(matchedModule, 1); } let children = []; let sortedEntities = permission.entityPermissions.sort((a, b) => { return a.displayIndex < b.displayIndex ? -1 : 1; }); for (let a = 0; a < sortedEntities.length; a++) { let entity = sortedEntities[a]; if (entity.isCorporateOnly === false) { let child = {}; child.configureNumberOfDays = shouldConfigureNumberOfDays(entity, assignablePermissions); child.id = entity.entityId; child.name = entity.entityName; child.description = entity.entityDescription; child.displayIndex = entity.displayIndex; child.indentLevel = entity.indentLevel; let matchedEntity = getMatchedEntity(module, child); if (matchedEntity === undefined || matchedEntity === null) { child.accessTypes = getArrUnchecked(); child.numberOfDays = null; child.isAutoAccept = false; child.autoAcceptType = null; } else { child.accessTypes = getArr(matchedEntity, 0); if (child.configureNumberOfDays) { if (matchedEntity.numberOfDays > 0) { child.numberOfDays = matchedEntity.numberOfDays; } else { child.numberOfDays = 1; } } else { child.numberOfDays = null; } child.isAutoAccept = matchedEntity.isAutoAccept; child.autoAcceptType = matchedEntity.autoAcceptType; } children.push(child); } } module.children = children; modules.push(module); } } transformedObject.modules = modules; return transformedObject; }; exports.transformAssignedPermissions = transformAssignedPermissions; const shouldConfigureNumberOfDays = function (entityObject) { let aP = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; /*const eName = entityObject.entityName?.toUpperCase(); if(eName === 'OAREFUNDS' || eName === 'OASTATUS'){ return true; }*/ const configureNumberOfDays = entityObject === null || entityObject === void 0 ? void 0 : entityObject.configureNumberOfDays; if (configureNumberOfDays !== undefined && configureNumberOfDays !== null && configureNumberOfDays === true) { return true; } if (aP !== undefined) { let found = null; for (let c = 0; c < (aP === null || aP === void 0 ? void 0 : aP.modules.length); c++) { let module = aP.modules[c]; for (let k = 0; k < module.children.length; k++) { let f = module.children[k]; if (f.id === entityObject.entityId) { found = f; break; } } } if (found !== null) { var _found$configureNumbe; return (_found$configureNumbe = found.configureNumberOfDays) !== null && _found$configureNumbe !== void 0 ? _found$configureNumbe : false; } } const numberOfDays = entityObject === null || entityObject === void 0 ? void 0 : entityObject.numberOfDays; if (numberOfDays !== undefined && numberOfDays !== null && numberOfDays > 0) { return true; } return false; }; const getArrUnchecked = () => { let defaultValue = _enums.TriStateValue.UNCHECKED; let arrValue = []; for (let prop in _enums.accessTypes) { arrValue.push({ name: prop, value: defaultValue, percent: 0 }); } return arrValue; }; const getArr = function (obj) { let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; let arrValue = []; for (let prop in _enums.accessTypes) { let stateValue = _enums.TriStateValue.UNCHECKED; let percent = 0; if (type === 0) { stateValue = obj[_enums.accessTypes[prop]] === true ? _enums.TriStateValue.CHECKED : _enums.TriStateValue.UNCHECKED; } else if (type === 1 || type === 2) { let percentPropName = "percent" + getAccessName(_enums.accessTypes[prop]); percent = Number(parseFloat(obj[percentPropName]).toFixed(2)); if (percent === 100) { stateValue = _enums.TriStateValue.CHECKED; } else if (percent === 0) { stateValue = _enums.TriStateValue.UNCHECKED; } else { stateValue = _enums.TriStateValue.PARTIAL; } } arrValue.push({ name: prop, value: stateValue, percent: percent }); } return arrValue; };