Skip to content

Commit

Permalink
Merge pull request #454 from UdeshAthukorala/app-branding
Browse files Browse the repository at this point in the history
Improve branding API to store application wise branding preferences
  • Loading branch information
Avarjana authored Feb 2, 2024
2 parents 64f8be0 + 6e2f63d commit 45f86bc
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,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;
Expand Down Expand Up @@ -70,7 +71,6 @@
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.

/**
* Create a branding preference resource with a resource file.
Expand Down Expand Up @@ -150,15 +150,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) {
Expand All @@ -184,15 +192,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(name, DEFAULT_LOCALE);
} else {
// Get default branding preference.
responseDTO = BrandingPreferenceServiceHolder.getBrandingPreferenceManager().
resolveBrandingPreference(ORGANIZATION_TYPE, tenantDomain, DEFAULT_LOCALE);
}

return buildBrandingResponseFromResponseDTO(responseDTO);
} catch (BrandingPreferenceMgtException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,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())) &&
Expand Down Expand Up @@ -124,7 +125,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 {
Expand Down Expand Up @@ -235,7 +236,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())) &&
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -768,7 +768,7 @@
<org.wso2.carbon.identity.oauth2.token.handler.clientauth.jwt.version>2.4.21</org.wso2.carbon.identity.oauth2.token.handler.clientauth.jwt.version>
<org.wso2.carbon.logging.service.version>4.10.7</org.wso2.carbon.logging.service.version>
<org.wso2.carbon.event.publisher.version>5.2.15</org.wso2.carbon.event.publisher.version>
<identity.branding.preference.management.version>1.0.12</identity.branding.preference.management.version>
<identity.branding.preference.management.version>1.1.1</identity.branding.preference.management.version>
<apache.felix.scr.ds.annotations.version>1.2.4</apache.felix.scr.ds.annotations.version>
<!--<maven.checkstyleplugin.excludes>**/gen/**/*</maven.checkstyleplugin.excludes>-->

Expand Down

0 comments on commit 45f86bc

Please sign in to comment.