1afc8a799Smiramurali23window.angular && (function(angular) { 2afc8a799Smiramurali23 'use strict'; 3afc8a799Smiramurali23 4afc8a799Smiramurali23 /** 5afc8a799Smiramurali23 * Role table 6afc8a799Smiramurali23 * Table of privilege role descriptions 7afc8a799Smiramurali23 */ 8afc8a799Smiramurali23 angular.module('app.accessControl').directive('roleTable', [ 9afc8a799Smiramurali23 '$sce', 10afc8a799Smiramurali23 function($sce) { 11afc8a799Smiramurali23 return { 12afc8a799Smiramurali23 restrict: 'E', 13afc8a799Smiramurali23 template: require('./role-table.html'), 14afc8a799Smiramurali23 controllerAs: 'roleTableCtrl', 15afc8a799Smiramurali23 controller: function() { 16afc8a799Smiramurali23 // TODO: This is a workaround to render the checkmark svg icon 17afc8a799Smiramurali23 // Would eventually like to enhance <bmc-table> component to 18afc8a799Smiramurali23 // compile custom directives as table items 19afc8a799Smiramurali23 const svg = require('../../assets/icons/icon-check.svg'); 20afc8a799Smiramurali23 const check = 21afc8a799Smiramurali23 $sce.trustAsHtml(`<span class="icon__check-mark">${svg}<span>`); 22afc8a799Smiramurali23 23afc8a799Smiramurali23 this.tableHeader = [ 24d11b9277SGunnar Mills {label: ''}, {label: 'Admin'}, {label: 'Operator'}, 256765c07aSGunnar Mills {label: 'ReadOnly'}, {label: 'NoAccess'} 26afc8a799Smiramurali23 ]; 27afc8a799Smiramurali23 28afc8a799Smiramurali23 // TODO: When API changed from D-Bus to Redfish, 'Operator' role 29afc8a799Smiramurali23 // should have 'Configure components managed by this service' 30afc8a799Smiramurali23 // privilege checked 31d11b9277SGunnar Mills // TODO: When 'Operator' and 'ReadOnly' roles have ability to change 32afc8a799Smiramurali23 // own account's passwords, should have 'Update password for 33afc8a799Smiramurali23 // current user account' privilege checked 34afc8a799Smiramurali23 this.tableData = [ 35afc8a799Smiramurali23 { 36afc8a799Smiramurali23 uiData: [ 37afc8a799Smiramurali23 'Configure components managed by this service', check, '', '', 38afc8a799Smiramurali23 '' 39afc8a799Smiramurali23 ] 40afc8a799Smiramurali23 }, 41afc8a799Smiramurali23 {uiData: ['Configure manager resources', check, '', '', '']}, 42afc8a799Smiramurali23 { 43afc8a799Smiramurali23 uiData: [ 44afc8a799Smiramurali23 'Update password for current user account', check, '', '', '' 45afc8a799Smiramurali23 ] 46afc8a799Smiramurali23 }, 47afc8a799Smiramurali23 {uiData: ['Configure users and their accounts', check, '', '', '']}, 48afc8a799Smiramurali23 { 49afc8a799Smiramurali23 uiData: [ 50afc8a799Smiramurali23 'Log in to the service and read resources', check, check, check, 516765c07aSGunnar Mills '' 52afc8a799Smiramurali23 ] 53afc8a799Smiramurali23 }, 546765c07aSGunnar Mills {uiData: ['IPMI access point', check, check, check, '']}, 556765c07aSGunnar Mills {uiData: ['Redfish access point', check, check, check, '']}, 56*dda0b83eSGunnar Mills {uiData: ['SSH access point', check, '', '', '']}, 576765c07aSGunnar Mills {uiData: ['WebUI access point', check, check, check, '']}, 58afc8a799Smiramurali23 ]; 59afc8a799Smiramurali23 60afc8a799Smiramurali23 this.isCollapsed = true; 61afc8a799Smiramurali23 this.onClick = () => { 62afc8a799Smiramurali23 this.isCollapsed = !this.isCollapsed; 63afc8a799Smiramurali23 }; 64afc8a799Smiramurali23 } 65afc8a799Smiramurali23 }; 66afc8a799Smiramurali23 } 67afc8a799Smiramurali23 ]); 68afc8a799Smiramurali23})(window.angular); 69