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