|
|
@ -60,8 +60,47 @@ public class WhiteLabelManagementServiceImpl implements WhiteLabelManagementServ
|
|
|
|
|
|
|
|
|
|
|
|
private final MetadataDAO metadataDAO;
|
|
|
|
private final MetadataDAO metadataDAO;
|
|
|
|
|
|
|
|
|
|
|
|
public WhiteLabelManagementServiceImpl() {
|
|
|
|
public WhiteLabelManagementServiceImpl() throws MetadataManagementException {
|
|
|
|
this.metadataDAO = MetadataManagementDAOFactory.getMetadataDAO();
|
|
|
|
this.metadataDAO = MetadataManagementDAOFactory.getMetadataDAO();
|
|
|
|
|
|
|
|
initializeWhiteLabelThemes();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void initializeWhiteLabelThemes() throws MetadataManagementException {
|
|
|
|
|
|
|
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
|
|
|
|
|
|
|
|
WhiteLabelTheme defaultTheme = getDefaultWhiteLabelTheme();
|
|
|
|
|
|
|
|
Metadata whiteLabelMetadata = getWhiteLabelMetaData(tenantId);
|
|
|
|
|
|
|
|
if (whiteLabelMetadata != null) {
|
|
|
|
|
|
|
|
WhiteLabelTheme whiteLabelTheme = new Gson().fromJson(whiteLabelMetadata.getMetaValue(),
|
|
|
|
|
|
|
|
WhiteLabelTheme.class);
|
|
|
|
|
|
|
|
if (whiteLabelTheme.getDocUrl() == null) {
|
|
|
|
|
|
|
|
whiteLabelTheme.setDocUrl(defaultTheme.getDocUrl());
|
|
|
|
|
|
|
|
Metadata updatedMetadata = constructWhiteLabelThemeMetadata(whiteLabelTheme);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
metadataDAO.updateMetadata(tenantId, updatedMetadata);
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
|
|
|
|
|
log.debug("WhiteLabel theme's DocUrl was missing and has been updated to the default value " +
|
|
|
|
|
|
|
|
"for tenant: " + tenantId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while fetching white label metadata for tenant: " + tenantId;
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Transaction failed while updating white label theme for tenant: "
|
|
|
|
|
|
|
|
+ tenantId;
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
addDefaultWhiteLabelThemeIfNotExist(tenantId);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -183,6 +222,16 @@ public class WhiteLabelManagementServiceImpl implements WhiteLabelManagementServ
|
|
|
|
WhiteLabelStorageUtil.deleteWhiteLabelImageForTenantIfExists(tenantId);
|
|
|
|
WhiteLabelStorageUtil.deleteWhiteLabelImageForTenantIfExists(tenantId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Get default metaDataConfiguration DocUrl from config
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String getDefaultDocUrl() {
|
|
|
|
|
|
|
|
MetaDataConfiguration metaDataConfiguration = DeviceConfigurationManager.getInstance().
|
|
|
|
|
|
|
|
getDeviceManagementConfig().getMetaDataConfiguration();
|
|
|
|
|
|
|
|
WhiteLabelConfiguration whiteLabelConfiguration = metaDataConfiguration.getWhiteLabelConfiguration();
|
|
|
|
|
|
|
|
return whiteLabelConfiguration.getDocUrl();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Construct and return default whitelabel detail bean {@link WhiteLabelImage}
|
|
|
|
* Construct and return default whitelabel detail bean {@link WhiteLabelImage}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -193,11 +242,13 @@ public class WhiteLabelManagementServiceImpl implements WhiteLabelManagementServ
|
|
|
|
WhiteLabelImage logo = constructDefaultLogoImage();
|
|
|
|
WhiteLabelImage logo = constructDefaultLogoImage();
|
|
|
|
WhiteLabelImage logoIcon = constructDefaultLogoIconImage();
|
|
|
|
WhiteLabelImage logoIcon = constructDefaultLogoIconImage();
|
|
|
|
WhiteLabelTheme defaultTheme = new WhiteLabelTheme();
|
|
|
|
WhiteLabelTheme defaultTheme = new WhiteLabelTheme();
|
|
|
|
|
|
|
|
String docUrl = getDefaultDocUrl();
|
|
|
|
defaultTheme.setFooterText(footerText);
|
|
|
|
defaultTheme.setFooterText(footerText);
|
|
|
|
defaultTheme.setAppTitle(appTitle);
|
|
|
|
defaultTheme.setAppTitle(appTitle);
|
|
|
|
defaultTheme.setLogoImage(logo);
|
|
|
|
defaultTheme.setLogoImage(logo);
|
|
|
|
defaultTheme.setLogoIconImage(logoIcon);
|
|
|
|
defaultTheme.setLogoIconImage(logoIcon);
|
|
|
|
defaultTheme.setFaviconImage(favicon);
|
|
|
|
defaultTheme.setFaviconImage(favicon);
|
|
|
|
|
|
|
|
defaultTheme.setDocUrl(docUrl);
|
|
|
|
return defaultTheme;
|
|
|
|
return defaultTheme;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -386,6 +437,7 @@ public class WhiteLabelManagementServiceImpl implements WhiteLabelManagementServ
|
|
|
|
whiteLabelTheme.setLogoIconImage(logoIconImage);
|
|
|
|
whiteLabelTheme.setLogoIconImage(logoIconImage);
|
|
|
|
whiteLabelTheme.setFooterText(whiteLabelThemeCreateRequest.getFooterText());
|
|
|
|
whiteLabelTheme.setFooterText(whiteLabelThemeCreateRequest.getFooterText());
|
|
|
|
whiteLabelTheme.setAppTitle(whiteLabelThemeCreateRequest.getAppTitle());
|
|
|
|
whiteLabelTheme.setAppTitle(whiteLabelThemeCreateRequest.getAppTitle());
|
|
|
|
|
|
|
|
whiteLabelTheme.setDocUrl(whiteLabelThemeCreateRequest.getDocUrl());
|
|
|
|
return whiteLabelTheme;
|
|
|
|
return whiteLabelTheme;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -418,6 +470,38 @@ public class WhiteLabelManagementServiceImpl implements WhiteLabelManagementServ
|
|
|
|
return metadata;
|
|
|
|
return metadata;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* updates the given WhiteLabelTheme with default value for docUrl
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param whiteLabelTheme the WhiteLabelTheme to be updated with defaults if necessary.
|
|
|
|
|
|
|
|
* @param tenantId the ID of the tenant whose metadata is being updated.
|
|
|
|
|
|
|
|
* @throws MetadataManagementException exception for an error occurs during the update or transaction commit.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private void updateWhiteLabelThemeWithDefaults(WhiteLabelTheme whiteLabelTheme, int tenantId)
|
|
|
|
|
|
|
|
throws MetadataManagementException {
|
|
|
|
|
|
|
|
WhiteLabelTheme defaultTheme = getDefaultWhiteLabelTheme();
|
|
|
|
|
|
|
|
if (whiteLabelTheme.getDocUrl() == null) {
|
|
|
|
|
|
|
|
whiteLabelTheme.setDocUrl(defaultTheme.getDocUrl());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Metadata updatedMetadata = constructWhiteLabelThemeMetadata(whiteLabelTheme);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.beginTransaction();
|
|
|
|
|
|
|
|
metadataDAO.updateMetadata(tenantId, updatedMetadata);
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.commitTransaction();
|
|
|
|
|
|
|
|
} catch (MetadataManagementDAOException e) {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.rollbackTransaction();
|
|
|
|
|
|
|
|
String msg = "Error occurred while updating metadata for tenant: " + tenantId;
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} catch (TransactionManagementException e) {
|
|
|
|
|
|
|
|
String msg = "Error occurred while committing the transaction for tenant: " + tenantId;
|
|
|
|
|
|
|
|
log.error(msg, e);
|
|
|
|
|
|
|
|
throw new MetadataManagementException(msg, e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
MetadataManagementDAOFactory.closeConnection();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public WhiteLabelTheme getWhiteLabelTheme(String tenantDomain) throws MetadataManagementException, DeviceManagementException {
|
|
|
|
public WhiteLabelTheme getWhiteLabelTheme(String tenantDomain) throws MetadataManagementException, DeviceManagementException {
|
|
|
|
int tenantId = DeviceManagerUtil.getTenantId(tenantDomain);
|
|
|
|
int tenantId = DeviceManagerUtil.getTenantId(tenantDomain);
|
|
|
@ -435,7 +519,11 @@ public class WhiteLabelManagementServiceImpl implements WhiteLabelManagementServ
|
|
|
|
throw new MetadataManagementException(msg);
|
|
|
|
throw new MetadataManagementException(msg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new Gson().fromJson(metadata.getMetaValue(), WhiteLabelTheme.class);
|
|
|
|
WhiteLabelTheme whiteLabelTheme = new Gson().fromJson(metadata.getMetaValue(), WhiteLabelTheme.class);
|
|
|
|
|
|
|
|
if (whiteLabelTheme.getDocUrl() == null) {
|
|
|
|
|
|
|
|
updateWhiteLabelThemeWithDefaults(whiteLabelTheme, tenantId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return whiteLabelTheme;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|