From 86c0d262e8f35e8b393f5646fe7478e360a07aa2 Mon Sep 17 00:00:00 2001 From: Thamindu Aluthwala Date: Wed, 21 Feb 2024 21:25:14 +0530 Subject: [PATCH] Handle role permission update when authorized api is deleted --- .../mgt/AuthorizedAPIManagementServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/AuthorizedAPIManagementServiceImpl.java b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/AuthorizedAPIManagementServiceImpl.java index 51ddd97b6051..1b70dda904f8 100644 --- a/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/AuthorizedAPIManagementServiceImpl.java +++ b/components/application-mgt/org.wso2.carbon.identity.application.mgt/src/main/java/org/wso2/carbon/identity/application/mgt/AuthorizedAPIManagementServiceImpl.java @@ -93,6 +93,14 @@ public void deleteAuthorizedAPI(String appId, String apiId, String tenantDomain) listener.preDeleteAuthorizedAPI(appId, apiId, tenantDomain); } authorizedAPIDAO.deleteAuthorizedAPI(appId, apiId, IdentityTenantUtil.getTenantId(tenantDomain)); + try { + List apiScopes = ApplicationManagementServiceComponentHolder.getInstance().getAPIResourceManager() + .getAPIResourceById(apiId, tenantDomain).getScopes().stream().map(Scope::getName) + .collect(Collectors.toList()); + updateRolesWithRemovedScopes(appId, apiScopes, tenantDomain); + } catch (APIResourceMgtException e) { + throw buildServerException("Error while retrieving API resource.", e); + } for (AuthorizedAPIManagementListener listener : listeners) { listener.postDeleteAuthorizedAPI(appId, apiId, tenantDomain); }