diff --git a/app/scripts/modules/core/src/application/config/applicationAttributes.directive.js b/app/scripts/modules/core/src/application/config/applicationAttributes.directive.js index 7d23bc07b79..66af7b23e8e 100644 --- a/app/scripts/modules/core/src/application/config/applicationAttributes.directive.js +++ b/app/scripts/modules/core/src/application/config/applicationAttributes.directive.js @@ -59,6 +59,13 @@ module.exports = angular (permissions.READ || []).forEach(role => { permissionsMap.set(role, 'read'); }); + (permissions.EXECUTE || []).forEach(role => { + if (permissionsMap.has(role)) { + permissionsMap.set(role, permissionsMap.get(role) + ', execute'); + } else { + permissionsMap.set(role, 'execute'); + } + }); (permissions.WRITE || []).forEach(role => { if (permissionsMap.has(role)) { permissionsMap.set(role, permissionsMap.get(role) + ', write'); diff --git a/app/scripts/modules/core/src/application/modal/PermissionsConfigurer.tsx b/app/scripts/modules/core/src/application/modal/PermissionsConfigurer.tsx index d55d8c0b6fa..6574c3b3acb 100644 --- a/app/scripts/modules/core/src/application/modal/PermissionsConfigurer.tsx +++ b/app/scripts/modules/core/src/application/modal/PermissionsConfigurer.tsx @@ -35,6 +35,7 @@ export class PermissionsConfigurer extends React.Component { - permissionRows.push({ group, access: 'READ' }); - }); + permissions.READ && + permissions.READ.forEach(group => { + permissionRows.push({ group, access: 'READ' }); + }); - permissions.EXECUTE.forEach(group => { - const matchingRow = permissionRows.find(row => row.group === group); - if (matchingRow) { - matchingRow.access += ',EXECUTE'; - } else { - permissionRows.push({ group, access: 'EXECUTE' }); - } - }); + permissions.EXECUTE && + permissions.EXECUTE.forEach(group => { + const matchingRow = permissionRows.find(row => row.group === group); + if (matchingRow) { + matchingRow.access += ',EXECUTE'; + } else { + permissionRows.push({ group, access: 'EXECUTE' }); + } + }); - permissions.WRITE.forEach(group => { - const matchingRow = permissionRows.find(row => row.group === group); - if (matchingRow) { - matchingRow.access += ',WRITE'; - } else { - // WRITE only permissions aren't supported in the UI, but they could be. - permissionRows.push({ group, access: 'WRITE' }); - } - }); + permissions.WRITE && + permissions.WRITE.forEach(group => { + const matchingRow = permissionRows.find(row => row.group === group); + if (matchingRow) { + matchingRow.access += ',WRITE'; + } else { + // WRITE only permissions aren't supported in the UI, but they could be. + permissionRows.push({ group, access: 'WRITE' }); + } + }); return permissionRows; } @@ -188,8 +192,10 @@ export class PermissionsConfigurer extends React.Component {this.state.permissionRows.map((row, i) => { - const permissionTypeLabel = PermissionsConfigurer.accessTypes.find(type => type.value === row.access).label; - + const permissionTypeLabel = [ + ...PermissionsConfigurer.accessTypes, + ...PermissionsConfigurer.legacyAccessTypes, + ].find(type => type.value === row.access).label; return (