Fixed ListBuckets screen tooltip logic, HelpBox fix (#2404)
This commit is contained in:
@@ -27,7 +27,6 @@ export const IAM_SCOPES = {
|
||||
S3_GET_BUCKET_POLICY: "s3:GetBucketPolicy",
|
||||
S3_PUT_BUCKET_POLICY: "s3:PutBucketPolicy",
|
||||
S3_GET_OBJECT: "s3:GetObject",
|
||||
S3_STAR_OBJECT: "s3:*Object",
|
||||
S3_PUT_OBJECT: "s3:PutObject",
|
||||
S3_GET_OBJECT_LEGAL_HOLD: "s3:GetObjectLegalHold",
|
||||
S3_PUT_OBJECT_LEGAL_HOLD: "s3:PutObjectLegalHold",
|
||||
@@ -282,7 +281,6 @@ export const IAM_PERMISSIONS = {
|
||||
IAM_SCOPES.ADMIN_LIST_USER_POLICIES,
|
||||
IAM_SCOPES.ADMIN_LIST_USERS,
|
||||
IAM_SCOPES.ADMIN_HEAL,
|
||||
IAM_SCOPES.S3_STAR_BUCKET,
|
||||
],
|
||||
[IAM_ROLES.BUCKET_LIFECYCLE]: [
|
||||
IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,
|
||||
@@ -547,10 +545,6 @@ export const listGroupPermissions = [
|
||||
export const deleteBucketPermissions = [
|
||||
IAM_SCOPES.S3_DELETE_BUCKET,
|
||||
IAM_SCOPES.S3_FORCE_DELETE_BUCKET,
|
||||
IAM_SCOPES.S3_STAR_BUCKET,
|
||||
];
|
||||
|
||||
export const browseBucketPermissions = [
|
||||
IAM_SCOPES.S3_LIST_BUCKET,
|
||||
IAM_SCOPES.S3_STAR_BUCKET,
|
||||
];
|
||||
export const browseBucketPermissions = [IAM_SCOPES.S3_LIST_BUCKET];
|
||||
|
||||
@@ -110,7 +110,6 @@ const BrowserHandler = () => {
|
||||
IAM_SCOPES.S3_LIST_BUCKET_VERSIONS,
|
||||
IAM_SCOPES.S3_GET_BUCKET_POLICY_STATUS,
|
||||
IAM_SCOPES.S3_DELETE_BUCKET_POLICY,
|
||||
IAM_SCOPES.S3_STAR_BUCKET,
|
||||
]);
|
||||
|
||||
const searchBar = (
|
||||
|
||||
@@ -141,6 +141,8 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
}
|
||||
});
|
||||
|
||||
const hasBuckets = records.length > 0;
|
||||
|
||||
const selectListBuckets = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
const targetD = e.target;
|
||||
const value = targetD.value;
|
||||
@@ -215,10 +217,7 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
setSelectedBuckets(selectAllBuckets);
|
||||
};
|
||||
|
||||
const canCreateBucket = hasPermission("*", [
|
||||
IAM_SCOPES.S3_CREATE_BUCKET,
|
||||
IAM_SCOPES.S3_STAR_BUCKET,
|
||||
]);
|
||||
const canCreateBucket = hasPermission("*", [IAM_SCOPES.S3_CREATE_BUCKET]);
|
||||
const canListBuckets = hasPermission("*", [IAM_SCOPES.S3_LIST_BUCKET]);
|
||||
|
||||
return (
|
||||
@@ -245,12 +244,14 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
<AutoColorIcon marginRight={15} marginTop={10} />
|
||||
</Grid>
|
||||
)}
|
||||
<SearchBox
|
||||
onChange={setFilterBuckets}
|
||||
placeholder="Search Buckets"
|
||||
overrideClass={classes.searchField}
|
||||
value={filterBuckets}
|
||||
/>
|
||||
{hasBuckets && (
|
||||
<SearchBox
|
||||
onChange={setFilterBuckets}
|
||||
placeholder="Search Buckets"
|
||||
overrideClass={classes.searchField}
|
||||
value={filterBuckets}
|
||||
/>
|
||||
)}
|
||||
|
||||
<Grid
|
||||
item
|
||||
@@ -268,7 +269,11 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
<Fragment>
|
||||
<TooltipWrapper
|
||||
tooltip={
|
||||
bulkSelect ? "Unselect Buckets" : "Select Multiple Buckets"
|
||||
!hasBuckets
|
||||
? ""
|
||||
: bulkSelect
|
||||
? "Unselect Buckets"
|
||||
: "Select Multiple Buckets"
|
||||
}
|
||||
>
|
||||
<Button
|
||||
@@ -279,13 +284,16 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
}}
|
||||
icon={<SelectMultipleIcon />}
|
||||
variant={bulkSelect ? "callAction" : "regular"}
|
||||
disabled={!hasBuckets}
|
||||
/>
|
||||
</TooltipWrapper>
|
||||
|
||||
{bulkSelect && (
|
||||
<TooltipWrapper
|
||||
tooltip={
|
||||
selectedBuckets.length === filteredRecords.length
|
||||
!hasBuckets
|
||||
? ""
|
||||
: selectedBuckets.length === filteredRecords.length
|
||||
? "Unselect All Buckets"
|
||||
: "Select All Buckets"
|
||||
}
|
||||
@@ -301,16 +309,18 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
|
||||
<TooltipWrapper
|
||||
tooltip={
|
||||
selectedBuckets.length === 0
|
||||
? bulkSelect
|
||||
? "Please select at least one bucket on which to configure Lifecycle"
|
||||
: "Use the Select Multiple Buckets button to choose buckets on which to configure Lifecycle"
|
||||
: canPutLifecycle
|
||||
? "Set Lifecycle"
|
||||
: permissionTooltipHelper(
|
||||
!hasBuckets
|
||||
? ""
|
||||
: !canPutLifecycle
|
||||
? permissionTooltipHelper(
|
||||
IAM_PERMISSIONS[IAM_ROLES.BUCKET_LIFECYCLE],
|
||||
"configure lifecycle for the selected buckets"
|
||||
)
|
||||
: selectedBuckets.length === 0
|
||||
? bulkSelect
|
||||
? "Please select at least one bucket on which to configure Lifecycle"
|
||||
: "Use the Select Multiple Buckets button to choose buckets on which to configure Lifecycle"
|
||||
: "Set Lifecycle"
|
||||
}
|
||||
>
|
||||
<Button
|
||||
@@ -324,7 +334,17 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
/>
|
||||
</TooltipWrapper>
|
||||
|
||||
<TooltipWrapper tooltip={"Set Replication"}>
|
||||
<TooltipWrapper
|
||||
tooltip={
|
||||
!hasBuckets
|
||||
? ""
|
||||
: selectedBuckets.length === 0
|
||||
? bulkSelect
|
||||
? "Please select at least one bucket on which to configure Replication"
|
||||
: "Use the Select Multiple Buckets button to choose buckets on which to configure Replication"
|
||||
: "Set Replication"
|
||||
}
|
||||
>
|
||||
<Button
|
||||
id={"set-replication"}
|
||||
onClick={() => {
|
||||
@@ -408,7 +428,7 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
</Grid>
|
||||
</Grid>
|
||||
)}
|
||||
{filteredRecords.length === 0 && filterBuckets === "" && (
|
||||
{!hasBuckets && (
|
||||
<Grid
|
||||
container
|
||||
justifyContent={"center"}
|
||||
@@ -424,21 +444,23 @@ const ListBuckets = ({ classes }: IListBucketsProps) => {
|
||||
MinIO uses buckets to organize objects. A bucket is
|
||||
similar to a folder or directory in a filesystem, where
|
||||
each bucket can hold an arbitrary number of objects.
|
||||
<br></br>
|
||||
<br></br>
|
||||
{canListBuckets
|
||||
? ""
|
||||
: "In order to view the buckets on this server, you require " +
|
||||
IAM_SCOPES.S3_LIST_BUCKET +
|
||||
" permission. Please contact your MinIO administrator to establish this permission."}
|
||||
<br />
|
||||
{canListBuckets ? (
|
||||
""
|
||||
) : (
|
||||
<Fragment>
|
||||
<br />
|
||||
{permissionTooltipHelper(
|
||||
[IAM_SCOPES.S3_LIST_BUCKET],
|
||||
"view the buckets on this server"
|
||||
)}
|
||||
<br />
|
||||
</Fragment>
|
||||
)}
|
||||
<SecureComponent
|
||||
scopes={[
|
||||
IAM_SCOPES.S3_CREATE_BUCKET,
|
||||
IAM_SCOPES.S3_STAR_BUCKET,
|
||||
]}
|
||||
scopes={[IAM_SCOPES.S3_CREATE_BUCKET]}
|
||||
resource={CONSOLE_UI_RESOURCE}
|
||||
>
|
||||
<br />
|
||||
<br />
|
||||
To get started,
|
||||
<AButton
|
||||
|
||||
@@ -1236,18 +1236,9 @@ const ListObjects = () => {
|
||||
uploadPath = uploadPath.concat(currentPath);
|
||||
}
|
||||
|
||||
const canDownload = hasPermission(bucketName, [
|
||||
IAM_SCOPES.S3_GET_OBJECT,
|
||||
IAM_SCOPES.S3_STAR_OBJECT,
|
||||
]);
|
||||
const canDelete = hasPermission(bucketName, [
|
||||
IAM_SCOPES.S3_DELETE_OBJECT,
|
||||
IAM_SCOPES.S3_STAR_OBJECT,
|
||||
]);
|
||||
const canUpload = hasPermission(uploadPath, [
|
||||
IAM_SCOPES.S3_PUT_OBJECT,
|
||||
IAM_SCOPES.S3_STAR_OBJECT,
|
||||
]);
|
||||
const canDownload = hasPermission(bucketName, [IAM_SCOPES.S3_GET_OBJECT]);
|
||||
const canDelete = hasPermission(bucketName, [IAM_SCOPES.S3_DELETE_OBJECT]);
|
||||
const canUpload = hasPermission(uploadPath, [IAM_SCOPES.S3_PUT_OBJECT]);
|
||||
|
||||
const onClosePanel = (forceRefresh: boolean) => {
|
||||
dispatch(setSelectedObjectView(null));
|
||||
|
||||
@@ -430,7 +430,6 @@ const ObjectDetailPanel = ({
|
||||
]);
|
||||
const canGetObject = hasPermission(objectResources, [
|
||||
IAM_SCOPES.S3_GET_OBJECT,
|
||||
IAM_SCOPES.S3_STAR_OBJECT,
|
||||
]);
|
||||
const canDelete = hasPermission(
|
||||
[bucketName, currentItem, [bucketName, actualInfo.name].join("/")],
|
||||
|
||||
@@ -69,11 +69,10 @@ const UploadFilesButton = ({
|
||||
|
||||
const uploadObjectAllowed = hasPermission(uploadPath, [
|
||||
IAM_SCOPES.S3_PUT_OBJECT,
|
||||
IAM_SCOPES.S3_STAR_OBJECT,
|
||||
]);
|
||||
const uploadFolderAllowed = hasPermission(
|
||||
bucketName,
|
||||
[IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_STAR_OBJECT],
|
||||
[IAM_SCOPES.S3_PUT_OBJECT],
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user