diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx index 0d00d7fbc..f8ef6e6d0 100644 --- a/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx +++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx @@ -1594,9 +1594,18 @@ const ListObjects = () => { } ${detailsOpen ? "actionsPanelOpen" : ""}`} selectedItems={selectedObjects} onSelect={selectListObjects} - customEmptyMessage={`This location is empty${ - !rewindEnabled ? ", please try uploading a new file" : "" - }`} + customEmptyMessage={ + !displayListObjects + ? permissionTooltipHelper( + [IAM_SCOPES.S3_LIST_BUCKET], + "view Objects in this bucket" + ) + : `This location is empty${ + !rewindEnabled + ? ", please try uploading a new file" + : "" + }` + } sortConfig={{ currentSort: currentSortField, currentDirection: sortDirection, diff --git a/portal-ui/tests/policies/bucketSpecific.json b/portal-ui/tests/policies/bucketSpecific.json index 4ddfd33a6..e8fcf5bd7 100644 --- a/portal-ui/tests/policies/bucketSpecific.json +++ b/portal-ui/tests/policies/bucketSpecific.json @@ -14,10 +14,14 @@ "arn:aws:s3:::specific-bucket-7/*", "arn:aws:s3:::specific-bucket-8/*", "arn:aws:s3:::specific-bucket-9/*", - "arn:aws:s3:::specific-bucket-10/*", - "arn:aws:s3:::specific-bucket-11/*" + "arn:aws:s3:::specific-bucket-10/*" ] }, + { + "Effect": "Allow", + "Action": ["s3:GetBucketLocation", "s3:ListAllMyBuckets"], + "Resource": ["arn:aws:s3:::specific-bucket-11/*"] + }, { "Effect": "Allow", "Action": ["s3:CreateBucket"], diff --git a/portal-ui/tests/utils/elements.ts b/portal-ui/tests/utils/elements.ts index 985500205..3506f3fa1 100644 --- a/portal-ui/tests/utils/elements.ts +++ b/portal-ui/tests/utils/elements.ts @@ -140,7 +140,9 @@ export const groupStatusText = Selector("#group-status"); export const table = Selector(".ReactVirtualized__Table"); export const bucketsTableDisabled = Selector("#object-list-wrapper") .find(".MuiPaper-root") - .withText("This location is empty, please try uploading a new file"); + .withText( + "You require additional permissions in order to view Objects in this bucket. Please ask your MinIO administrator to grant you s3:ListBucket permission in order to view Objects in this bucket." + ); export const createGroupUserTable = Selector( ".MuiDialog-container .ReactVirtualized__Table" );