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