mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 13:27:46 +00:00
misc: addressed rbac for bulk delete in overview
This commit is contained in:
@@ -43,14 +43,26 @@ export const SelectionPanel = ({ getFolderByNameAndEnv, getSecretByKey, secretPa
|
|||||||
|
|
||||||
const isMultiSelectActive = selectedCount > 0;
|
const isMultiSelectActive = selectedCount > 0;
|
||||||
|
|
||||||
// TODO: REVISIT RBAC
|
// user should have the ability to delete secrets/folders in at least one of the envs
|
||||||
const shouldShowDelete = permission.can(
|
const shouldShowDelete = userAvailableEnvs.some((env) =>
|
||||||
ProjectPermissionActions.Delete,
|
permission.can(
|
||||||
subject(ProjectPermissionSub.Secrets, { environment: "", secretPath })
|
ProjectPermissionActions.Delete,
|
||||||
|
subject(ProjectPermissionSub.Secrets, { environment: env.slug, secretPath })
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleBulkDelete = async () => {
|
const handleBulkDelete = async () => {
|
||||||
const promises = userAvailableEnvs.map(async (env) => {
|
const promises = userAvailableEnvs.map(async (env) => {
|
||||||
|
// additional check: ensure that bulk delete is only executed on envs that user has access to
|
||||||
|
if (
|
||||||
|
permission.cannot(
|
||||||
|
ProjectPermissionActions.Delete,
|
||||||
|
subject(ProjectPermissionSub.Secrets, { environment: env.slug, secretPath })
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
Object.keys(selectedEntries.folder).map(async (folderName) => {
|
Object.keys(selectedEntries.folder).map(async (folderName) => {
|
||||||
const folder = getFolderByNameAndEnv(folderName, env.slug);
|
const folder = getFolderByNameAndEnv(folderName, env.slug);
|
||||||
|
|||||||
Reference in New Issue
Block a user