From 5b5106c722964094cec852135d8d7f24a8d1cbd9 Mon Sep 17 00:00:00 2001 From: UdeshAthukorala Date: Fri, 12 May 2023 02:36:48 +0530 Subject: [PATCH 1/5] Improve branding API to store application wise branding preferences --- .../BrandingPreferenceManagementService.java | 44 +++++++++++++------ .../BrandingPreferenceApiServiceImpl.java | 8 ++-- pom.xml | 2 +- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java index 221d57af8d..02e28d7e29 100644 --- a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java +++ b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java @@ -36,6 +36,7 @@ import javax.ws.rs.core.Response; +import static org.wso2.carbon.identity.api.server.branding.preference.management.common.BrandingPreferenceManagementConstants.APPLICATION_TYPE; import static org.wso2.carbon.identity.api.server.branding.preference.management.common.BrandingPreferenceManagementConstants.BRANDING_PREFERENCE_ALREADY_EXISTS_ERROR_CODE; import static org.wso2.carbon.identity.api.server.branding.preference.management.common.BrandingPreferenceManagementConstants.BRANDING_PREFERENCE_ERROR_PREFIX; import static org.wso2.carbon.identity.api.server.branding.preference.management.common.BrandingPreferenceManagementConstants.BRANDING_PREFERENCE_MGT_ERROR_CODE_DELIMITER; @@ -59,7 +60,7 @@ public class BrandingPreferenceManagementService { private static final Log log = LogFactory.getLog(BrandingPreferenceManagementService.class); - //TODO: Improve API to manage application level & language level theming resources in addition to the tenant level. + //TODO: Improve API to manage custom level & language level theming resources in addition to the tenant level. /** * Create a branding preference resource with a resource file. @@ -139,15 +140,23 @@ public void deleteBrandingPreference(String type, String name, String locale) { */ public BrandingPreferenceModel getBrandingPreference(String type, String name, String locale) { - /** - * Currently this API provides the support to only configure tenant wise branding preference for 'en-US' locale. - * So always retrieve customized default branding preference. - */ + /* + Currently this API provides the support to only configure tenant wise & application wise branding preference + for 'en-US' locale. + So always use locale as default locale(en-US). + */ String tenantDomain = getTenantDomainFromContext(); try { - // Get default branding preference. - BrandingPreference responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). - getBrandingPreference(ORGANIZATION_TYPE, tenantDomain, DEFAULT_LOCALE); + BrandingPreference responseDTO; + if (APPLICATION_TYPE.equals(type)) { + // Get application specific branding preference. + responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). + getBrandingPreference(APPLICATION_TYPE, name, DEFAULT_LOCALE); + } else { + // Get tenant specific branding preference.(default branding preference) + responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). + getBrandingPreference(ORGANIZATION_TYPE, tenantDomain, DEFAULT_LOCALE); + } return buildBrandingResponseFromResponseDTO(responseDTO); } catch (BrandingPreferenceMgtException e) { @@ -173,15 +182,22 @@ public BrandingPreferenceModel getBrandingPreference(String type, String name, S public BrandingPreferenceModel resolveBrandingPreference(String type, String name, String locale) { /* - Currently this API provides the support to only configure organization wise branding preference - for 'en-US' locale. - So always retrieve customized default branding preference. + Currently this API provides the support to only configure organization wise & application wise + branding preference for 'en-US' locale. + So always locale as default locale(en-US). */ String tenantDomain = getTenantDomainFromContext(); try { - // Get default branding preference. - BrandingPreference responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). - resolveBrandingPreference(ORGANIZATION_TYPE, tenantDomain, DEFAULT_LOCALE); + BrandingPreference responseDTO; + if (APPLICATION_TYPE.equals(type)) { + // Get application specific branding preference. + responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). + resolveApplicationBrandingPreference(APPLICATION_TYPE, name, DEFAULT_LOCALE); + } else { + // Get default branding preference. + responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). + resolveBrandingPreference(ORGANIZATION_TYPE, tenantDomain, DEFAULT_LOCALE); + } return buildBrandingResponseFromResponseDTO(responseDTO); } catch (BrandingPreferenceMgtException e) { diff --git a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/impl/BrandingPreferenceApiServiceImpl.java b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/impl/BrandingPreferenceApiServiceImpl.java index 42464d8bd7..6502ad5a97 100644 --- a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/impl/BrandingPreferenceApiServiceImpl.java +++ b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/impl/BrandingPreferenceApiServiceImpl.java @@ -59,7 +59,8 @@ public Response addBrandingPreference(BrandingPreferenceModel brandingPreference if (StringUtils.isBlank(brandingPreferenceModel.getType().toString())) { return Response.status(Response.Status.BAD_REQUEST).build(); } - if (!ORGANIZATION_TYPE.equals(brandingPreferenceModel.getType().toString())) { + if (!(ORGANIZATION_TYPE.equals(brandingPreferenceModel.getType().toString()) || + APPLICATION_TYPE.equals(brandingPreferenceModel.getType().toString()))) { return Response.status(Response.Status.NOT_IMPLEMENTED).entity("Not Implemented.").build(); } if ((!DEFAULT_LOCALE.equals(brandingPreferenceModel.getLocale())) && @@ -89,7 +90,7 @@ public Response deleteBrandingPreference(String type, String name, String locale if (!(ORGANIZATION_TYPE.equals(type) || APPLICATION_TYPE.equals(type) || CUSTOM_TYPE.equals(type))) { return Response.status(Response.Status.BAD_REQUEST).build(); } - if (!ORGANIZATION_TYPE.equals(type)) { + if (!(ORGANIZATION_TYPE.equals(type) || APPLICATION_TYPE.equals(type))) { return Response.status(Response.Status.NOT_FOUND).build(); } } else { @@ -137,7 +138,8 @@ public Response updateBrandingPreference(BrandingPreferenceModel brandingPrefere if (StringUtils.isBlank(brandingPreferenceModel.getType().toString())) { return Response.status(Response.Status.BAD_REQUEST).build(); } - if (!ORGANIZATION_TYPE.equals(brandingPreferenceModel.getType().toString())) { + if (!(ORGANIZATION_TYPE.equals(brandingPreferenceModel.getType().toString()) || + APPLICATION_TYPE.equals(brandingPreferenceModel.getType().toString()))) { return Response.status(Response.Status.NOT_FOUND).build(); } if ((!DEFAULT_LOCALE.equals(brandingPreferenceModel.getLocale())) && diff --git a/pom.xml b/pom.xml index c1967153b8..825b482b6c 100644 --- a/pom.xml +++ b/pom.xml @@ -586,7 +586,7 @@ 0.7.12 2.4.21 5.2.15 - 1.0.4 + 1.0.6 1.5.55 From 85b44b8f4d858824f288dba4439aebb64b4e6719 Mon Sep 17 00:00:00 2001 From: Avarjana Date: Thu, 1 Feb 2024 12:14:37 +0530 Subject: [PATCH 2/5] Update branding preference version. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 825b482b6c..79e4af8390 100644 --- a/pom.xml +++ b/pom.xml @@ -586,7 +586,7 @@ 0.7.12 2.4.21 5.2.15 - 1.0.6 + 1.0.12 1.5.55 From da5ef354ea314adb7ff5c80500bfa4de0622cd50 Mon Sep 17 00:00:00 2001 From: Avarjana Date: Fri, 2 Feb 2024 11:26:43 +0530 Subject: [PATCH 3/5] Remove unwanted todo comment --- .../management/v1/core/BrandingPreferenceManagementService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java index fff226517f..aff071e292 100644 --- a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java +++ b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java @@ -71,7 +71,6 @@ public class BrandingPreferenceManagementService { private static final Log log = LogFactory.getLog(BrandingPreferenceManagementService.class); - //TODO: Improve API to manage custom level & language level theming resources in addition to the tenant level. /** * Create a branding preference resource with a resource file. From 996b114139c174156320491476810c6057e38805 Mon Sep 17 00:00:00 2001 From: Avarjana Date: Fri, 2 Feb 2024 13:51:51 +0530 Subject: [PATCH 4/5] Update branding preference mgt version --- pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8604ddff0a..f48ee43c0a 100644 --- a/pom.xml +++ b/pom.xml @@ -768,9 +768,8 @@ 2.4.21 4.10.7 5.2.15 - 1.0.12 + 1.1.1 1.2.4 - 1.5.55 From 6e2f63df401ac7b0eb4f1ce98f5d92814ca57a0b Mon Sep 17 00:00:00 2001 From: Avarjana Date: Fri, 2 Feb 2024 14:19:59 +0530 Subject: [PATCH 5/5] Update BrandingPreferenceManagementService.java --- .../management/v1/core/BrandingPreferenceManagementService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java index aff071e292..3dc9944039 100644 --- a/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java +++ b/components/org.wso2.carbon.identity.api.server.branding.preference.management/org.wso2.carbon.identity.api.server.branding.preference.management.v1/src/main/java/org/wso2/carbon/identity/api/server/branding/preference/management/v1/core/BrandingPreferenceManagementService.java @@ -202,7 +202,7 @@ So always locale as default locale(en-US). if (APPLICATION_TYPE.equals(type)) { // Get application specific branding preference. responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager(). - resolveApplicationBrandingPreference(APPLICATION_TYPE, name, DEFAULT_LOCALE); + resolveApplicationBrandingPreference(name, DEFAULT_LOCALE); } else { // Get default branding preference. responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager().