blob: ee99a4137f6cd0f39f2cac8a2819ae764581fda2 [file] [log] [blame]
Yoshie Muranaka8c80dbd2019-08-08 10:58:04 -05001window.angular && (function(angular) {
2 'use strict';
3
4 /**
5 * Role table
6 * Table of privilege role descriptions
7 */
8 angular.module('app.users').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.tableModel = {};
24 this.tableModel.header =
25 ['', 'Admin', 'Operator', 'User', 'Callback'];
26
27 // TODO: When API changed from D-Bus to Redfish, 'Operator' role
28 // should have 'Configure components managed by this service'
29 // privilege checked
Yoshie Muranakac7997142019-09-03 07:31:45 -070030 // TODO: When 'Operator' and 'User' roles have ability to change
31 // own account's passwords, should have 'Update password for
32 // current user account' privilege checked
Yoshie Muranaka8c80dbd2019-08-08 10:58:04 -050033 this.tableModel.data = [
34 {
35 uiData: [
36 'Configure components managed by this service', check, '', '',
37 ''
38 ]
39 },
40 {uiData: ['Configure manager resources', check, '', '', '']},
41 {
42 uiData: [
Yoshie Muranakac7997142019-09-03 07:31:45 -070043 'Update password for current user account', check, '', '', ''
Yoshie Muranaka8c80dbd2019-08-08 10:58:04 -050044 ]
45 },
46 {uiData: ['Configure users and their accounts', check, '', '', '']},
47 {
48 uiData: [
49 'Log in to the service and read resources', check, check, check,
50 ''
51 ]
52 },
53 {uiData: ['IPMI access point', check, check, check, check]},
54 {uiData: ['Redfish access point', check, check, check, '']},
55 {uiData: ['SSH access point', check, check, check, '']},
56 {uiData: ['WebUI access point', check, check, check, '']},
57 ];
58
59 this.isCollapsed = true;
60 this.onClick = () => {
61 this.isCollapsed = !this.isCollapsed;
62 };
63 }
64 };
65 }
66 ]);
67})(window.angular);