This is an automated email from the ASF dual-hosted git repository.
dineshkumar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 2e4a8c17b RANGER-4010 : [addendum] Update policy UI to support
multiple resource-sets for react ranger.
2e4a8c17b is described below
commit 2e4a8c17baec963c190966be11a934f72373644b
Author: Dhaval Rajpara <[email protected]>
AuthorDate: Wed Nov 29 10:34:14 2023 +0530
RANGER-4010 : [addendum] Update policy UI to support multiple resource-sets
for react ranger.
Signed-off-by: Dineshkumar Yadav <[email protected]>
---
.../react-webapp/src/components/Editable.jsx | 2 +-
.../views/PolicyListing/PolicyPermissionItem.jsx | 48 ++++++++++++++++------
2 files changed, 37 insertions(+), 13 deletions(-)
diff --git
a/security-admin/src/main/webapp/react-webapp/src/components/Editable.jsx
b/security-admin/src/main/webapp/react-webapp/src/components/Editable.jsx
index 98495f6cc..128a235b4 100644
--- a/security-admin/src/main/webapp/react-webapp/src/components/Editable.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/components/Editable.jsx
@@ -160,7 +160,7 @@ const CustomCondition = (props) => {
return (
<>
{conditionDefVal?.length > 0 &&
- conditionDefVal.map((m, index) => {
+ conditionDefVal.map((m) => {
let uiHintAttb =
m.uiHint != undefined && m.uiHint != "" ? JSON.parse(m.uiHint) :
"";
if (uiHintAttb != "") {
diff --git
a/security-admin/src/main/webapp/react-webapp/src/views/PolicyListing/PolicyPermissionItem.jsx
b/security-admin/src/main/webapp/react-webapp/src/views/PolicyListing/PolicyPermissionItem.jsx
index ab9b3ce88..f9fe4a38d 100644
---
a/security-admin/src/main/webapp/react-webapp/src/views/PolicyListing/PolicyPermissionItem.jsx
+++
b/security-admin/src/main/webapp/react-webapp/src/views/PolicyListing/PolicyPermissionItem.jsx
@@ -151,6 +151,8 @@ export default function PolicyPermissionItem(props) {
}
}
multiplePermissionItem = [...multiplePermissionItem, ...op];
+ } else {
+ multiplePermissionItem = [...srcOp];
}
break;
}
@@ -498,6 +500,7 @@ export default function PolicyPermissionItem(props) {
</td>
);
} else {
+ let accessTypeOptions = getAccessTypeOptions();
return (
<td key={colName} className="align-middle">
<Field
@@ -509,18 +512,39 @@ export default function PolicyPermissionItem(props) {
index
)
}
- render={({ input }) => (
- <div className="table-editable">
- <Editable
- {...input}
- placement="auto"
- type="checkbox"
- options={getAccessTypeOptions()}
- showSelectAll={true}
- selectAllLabel="Select All"
- />
- </div>
- )}
+ render={({ input, meta }) => {
+ if (
+ formValues[attrName][index]?.accesses &&
+ isArray(
+ formValues[attrName][index].accesses
+ ) &&
+ changePolicyItemPermissions
+ ) {
+ let accTypeVal = filter(
+ formValues[attrName][index].accesses,
+ (m) => {
+ if (some(accessTypeOptions, m)) {
+ return m;
+ }
+ }
+ );
+ if (!isEqual(input.value, accTypeVal)) {
+ input.onChange(accTypeVal);
+ }
+ }
+ return (
+ <div className="table-editable">
+ <Editable
+ {...input}
+ placement="auto"
+ type="checkbox"
+ options={accessTypeOptions}
+ showSelectAll={true}
+ selectAllLabel="Select All"
+ />
+ </div>
+ );
+ }}
/>
</td>
);