window.angular && (function(angular) { 'use strict'; /** * Role table * Table of privilege role descriptions */ angular.module('app.accessControl').directive('roleTable', [ '$sce', function($sce) { return { restrict: 'E', template: require('./role-table.html'), controllerAs: 'roleTableCtrl', controller: function() { // TODO: This is a workaround to render the checkmark svg icon // Would eventually like to enhance component to // compile custom directives as table items const svg = require('../../assets/icons/icon-check.svg'); const check = $sce.trustAsHtml(`${svg}`); this.tableHeader = [ {label: ''}, {label: 'Admin'}, {label: 'Operator'}, {label: 'ReadOnly'}, {label: 'Callback'} ]; // TODO: When API changed from D-Bus to Redfish, 'Operator' role // should have 'Configure components managed by this service' // privilege checked // TODO: When 'Operator' and 'ReadOnly' roles have ability to change // own account's passwords, should have 'Update password for // current user account' privilege checked // TODO: Update Callback privileges when backend removes privileges // for Callback role. this.tableData = [ { uiData: [ 'Configure components managed by this service', check, '', '', '' ] }, {uiData: ['Configure manager resources', check, '', '', '']}, { uiData: [ 'Update password for current user account', check, '', '', '' ] }, {uiData: ['Configure users and their accounts', check, '', '', '']}, { uiData: [ 'Log in to the service and read resources', check, check, check, check ] }, {uiData: ['IPMI access point', check, check, check, check]}, {uiData: ['Redfish access point', check, check, check, check]}, {uiData: ['SSH access point', check, check, check, check]}, {uiData: ['WebUI access point', check, check, check, check]}, ]; this.isCollapsed = true; this.onClick = () => { this.isCollapsed = !this.isCollapsed; }; } }; } ]); })(window.angular);