Skip to content

Commit 3e0cd03

Browse files
authored
Merge pull request #9173 from GilbertCherrie/fix_vm_reconfigure_form_privelages
Fix vm reconfigure form privelages
2 parents 8e8a98d + 0308f90 commit 3e0cd03

File tree

6 files changed

+5034
-519
lines changed

6 files changed

+5034
-519
lines changed

app/javascript/components/reconfigure-vm-form/reconfigure-form-fields.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@ import { setNetworkData } from './helpers/network';
55
import { setDrivesData } from './helpers/drive';
66
import { TYPES } from './helpers/general';
77

8-
const memoryField = (roles) => ({
8+
const memoryField = () => ({
99
component: 'switch',
1010
name: 'cb_memory',
1111
label: __('Memory'),
1212
onText: __('Yes'),
1313
offText: __('No'),
14-
isDisabled: roles.allowMemoryChange === false,
1514
});
1615

1716
const memoryValueField = () => ({
@@ -56,13 +55,12 @@ const memoryFormFields = (memory) => ({
5655
],
5756
});
5857

59-
const processorField = (roles) => ({
58+
const processorField = () => ({
6059
component: 'switch',
6160
name: 'processor',
6261
label: __('Processor'),
6362
onText: __('Yes'),
6463
offText: __('No'),
65-
isDisabled: roles.allowCpuChange === false,
6664
});
6765

6866
const socketField = (data, setData, options) => ({
@@ -123,6 +121,7 @@ const diskTable = (data, roles, setData, onCellClick, buttonClick) => ({
123121
formType: TYPES.DISK,
124122
addButtonLabel: __('Add Disk'),
125123
buttonClick,
124+
roleAllowed: roles.allowDiskChange,
126125
});
127126

128127
const networkTable = (data, roles, setData, onCellClick, buttonClick) => ({
@@ -135,6 +134,7 @@ const networkTable = (data, roles, setData, onCellClick, buttonClick) => ({
135134
formType: TYPES.NETWORK,
136135
addButtonLabel: __('Add Network Adapter'),
137136
buttonClick,
137+
roleAllowed: roles.allowNetworkChange,
138138
});
139139

140140
const driveTable = (data, roles, setData, onCellClick) => ({
@@ -147,19 +147,23 @@ const driveTable = (data, roles, setData, onCellClick) => ({
147147
addButton: false,
148148
formType: TYPES.DRIVE,
149149
hideField: !data.dataTable.drives || data.dataTable.drives.length === 0,
150+
roleAllowed: roles.allowCdromsChange,
150151
});
151152

152153
const renderDatatables = (recordId, data, roles, setData, onCellClick, buttonClick) => [diskTable(data, roles, setData, onCellClick, buttonClick),
153154
networkTable(data, roles, setData, onCellClick, buttonClick),
154155
driveTable(data, roles, setData, onCellClick)];
155156

156157
export const reconfigureFormFields = (recordId, roles, memory, data, setData, options, onCellClick, buttonClick) => {
157-
const formFields = [
158-
memoryField(roles),
159-
memoryFormFields(memory),
160-
processorField(roles),
161-
processorFormFields(data, setData, options, memory.max_cpu),
162-
];
158+
const formFields = [];
159+
if (roles.allowMemoryChange) {
160+
formFields.push(memoryField());
161+
formFields.push(memoryFormFields(roles));
162+
}
163+
if (roles.allowCpuChange) {
164+
formFields.push(processorField());
165+
formFields.push(processorFormFields(data, setData, options, memory.max_cpu));
166+
}
163167
if (recordId.length === 1) {
164168
formFields.push(renderDatatables(recordId, data, roles, setData, onCellClick, buttonClick));
165169
}

app/javascript/components/reconfigure-vm-form/reconfigure-table/index.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import classNames from 'classnames';
55
import MiqDataTable from '../../miq-data-table';
66

77
const ReconfigureTable = ({
8-
label, headers, rows, addButtonLabel, buttonClick, onCellClick, formType,
8+
label, headers, rows, addButtonLabel, buttonClick, onCellClick, formType, roleAllowed,
99
}) => {
1010
const renderAddButton = () => addButtonLabel && (
1111
<Button
@@ -18,7 +18,7 @@ const ReconfigureTable = ({
1818
{addButtonLabel}
1919
</Button>
2020
);
21-
return (
21+
return roleAllowed ? (
2222
<div className={classNames(`${formType}-table`, 'reconfigure-form-table')}>
2323
<div className="form-section-title">
2424
<h3>{label}</h3>
@@ -31,7 +31,7 @@ const ReconfigureTable = ({
3131
mode={`${formType}-table-list`}
3232
/>
3333
</div>
34-
);
34+
) : null;
3535
};
3636

3737
ReconfigureTable.propTypes = {
@@ -42,6 +42,7 @@ ReconfigureTable.propTypes = {
4242
formType: PropTypes.string,
4343
onCellClick: PropTypes.func,
4444
buttonClick: PropTypes.func,
45+
roleAllowed: PropTypes.bool,
4546
};
4647

4748
ReconfigureTable.defaultProps = {
@@ -52,5 +53,6 @@ ReconfigureTable.defaultProps = {
5253
addButtonLabel: '',
5354
formType: '',
5455
label: '',
56+
roleAllowed: false,
5557
};
5658
export default ReconfigureTable;

0 commit comments

Comments
 (0)