Skip to content

Commit 3dbe72a

Browse files
author
Marc Monchablon
committed
fix(iam): remove related resources & actions on productType deletion
ref: #MAIAM-53, #MAIAM-56 Signed-off-by: Marc Monchablon <[email protected]>
1 parent f26a8a9 commit 3dbe72a

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

packages/manager/modules/iam/src/components/advancedPolicySearch/advancedPolicySearch.controller.js

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,42 @@ export default class AdvancedPolicySearchController {
285285
this.onModelChange();
286286
}
287287

288-
onResourceTypesConfirmRemove() {
289-
return this.$q.when(true);
288+
onResourceTypesConfirmRemove(resourceType) {
289+
// Cascade deletion on resources
290+
const resources = this.model.resources.selection;
291+
const filteredResources = resources.filter(
292+
(resource) => resource.type !== resourceType,
293+
);
294+
const hasImpactedResources = filteredResources.length < resources.length;
295+
if (hasImpactedResources) {
296+
this.model.resources = {
297+
...this.model.resources,
298+
selection: filteredResources,
299+
};
300+
this.updateResourcesParametersList();
301+
}
302+
303+
// Cascade deletion on actions
304+
const actions = this.model.actions.selection;
305+
const filteredActions = actions.filter(
306+
(action) => action.resourceType !== resourceType,
307+
);
308+
const hasImpactedActions = filteredActions.length < actions.length;
309+
if (hasImpactedActions) {
310+
this.model.actions = {
311+
...this.model.actions,
312+
selection: filteredActions,
313+
};
314+
this.updateActionsParametersList();
315+
}
316+
317+
if (hasImpactedResources || hasImpactedActions) {
318+
this.model.resources.types = this.model.resources.types.filter(
319+
(type) => type !== resourceType,
320+
);
321+
this.onModelChange();
322+
}
323+
324+
return this.$q.resolve(true);
290325
}
291326
}

0 commit comments

Comments
 (0)