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: 'Callback'} 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 // TODO: Update Callback privileges when backend removes privileges 35 // for Callback role. 36 this.tableData = [ 37 { 38 uiData: [ 39 'Configure components managed by this service', check, '', '', 40 '' 41 ] 42 }, 43 {uiData: ['Configure manager resources', check, '', '', '']}, 44 { 45 uiData: [ 46 'Update password for current user account', check, '', '', '' 47 ] 48 }, 49 {uiData: ['Configure users and their accounts', check, '', '', '']}, 50 { 51 uiData: [ 52 'Log in to the service and read resources', check, check, check, 53 check 54 ] 55 }, 56 {uiData: ['IPMI access point', check, check, check, check]}, 57 {uiData: ['Redfish access point', check, check, check, check]}, 58 {uiData: ['SSH access point', check, check, check, check]}, 59 {uiData: ['WebUI access point', check, check, check, check]}, 60 ]; 61 62 this.isCollapsed = true; 63 this.onClick = () => { 64 this.isCollapsed = !this.isCollapsed; 65 }; 66 } 67 }; 68 } 69 ]); 70})(window.angular); 71