This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 17fe98432da Remove unnecessary escape method (#6692)
17fe98432da is described below
commit 17fe98432daa0f1c67414c6ea69efa56eb30e195
Author: Bryan Lima <[email protected]>
AuthorDate: Thu Oct 20 09:37:05 2022 -0300
Remove unnecessary escape method (#6692)
---
.../cloudstack/quota/QuotaAlertManagerImpl.java | 60 ++++++++++++++++------
.../api/response/QuotaResponseBuilderImpl.java | 5 +-
2 files changed, 46 insertions(+), 19 deletions(-)
diff --git
a/framework/quota/src/main/java/org/apache/cloudstack/quota/QuotaAlertManagerImpl.java
b/framework/quota/src/main/java/org/apache/cloudstack/quota/QuotaAlertManagerImpl.java
index 1bbb0625a0c..8ef2c96f2aa 100644
---
a/framework/quota/src/main/java/org/apache/cloudstack/quota/QuotaAlertManagerImpl.java
+++
b/framework/quota/src/main/java/org/apache/cloudstack/quota/QuotaAlertManagerImpl.java
@@ -34,7 +34,8 @@ import org.apache.cloudstack.quota.dao.QuotaAccountDao;
import org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDao;
import org.apache.cloudstack.quota.vo.QuotaAccountVO;
import org.apache.cloudstack.quota.vo.QuotaEmailTemplatesVO;
-import org.apache.commons.lang3.text.StrSubstitutor;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.text.StrSubstitutor;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -81,6 +82,10 @@ public class QuotaAlertManagerImpl extends ManagerBase
implements QuotaAlertMana
boolean _smtpDebug = false;
+ static final String ACCOUNT_NAME = "accountName";
+ static final String ACCOUNT_USERS = "accountUsers";
+ static final String DOMAIN_NAME = "domainName";
+
public QuotaAlertManagerImpl() {
super();
}
@@ -203,25 +208,20 @@ public class QuotaAlertManagerImpl extends ManagerBase
implements QuotaAlertMana
userNames = userNames.substring(0, userNames.length() - 1);
}
- final Map<String, String> optionMap = new HashMap<String,
String>();
- optionMap.put("accountName", account.getAccountName());
- optionMap.put("accountID", account.getUuid());
- optionMap.put("accountUsers", userNames);
- optionMap.put("domainName", accountDomain.getName());
- optionMap.put("domainID", accountDomain.getUuid());
- optionMap.put("quotaBalance",
QuotaConfig.QuotaCurrencySymbol.value() + " " + balance.toString());
- if (emailType == QuotaEmailTemplateTypes.QUOTA_STATEMENT) {
- optionMap.put("quotaUsage",
QuotaConfig.QuotaCurrencySymbol.value() + " " + usage.toString());
- }
+ final Map<String, String> subjectOptionMap =
generateOptionMap(account, userNames, accountDomain, balance, usage, emailType,
false);
+ final Map<String, String> bodyOptionMap =
generateOptionMap(account, userNames, accountDomain, balance, usage, emailType,
true);
if (s_logger.isDebugEnabled()) {
- s_logger.debug("accountName" + account.getAccountName() +
"accountID" + account.getUuid() + "accountUsers" + userNames + "domainName" +
accountDomain.getName() + "domainID"
- + accountDomain.getUuid());
+ s_logger.debug(String.format("Sending quota alert with values:
accountName [%s], accountID [%s], accountUsers [%s], domainName [%s], domainID
[%s].",
+ account.getAccountName(), account.getUuid(),
userNames, accountDomain.getName(), accountDomain.getUuid()));
}
- final StrSubstitutor templateEngine = new
StrSubstitutor(optionMap);
- final String subject =
templateEngine.replace(emailTemplate.getTemplateSubject());
- final String body =
templateEngine.replace(emailTemplate.getTemplateBody());
+ final StrSubstitutor subjectSubstitutor = new
StrSubstitutor(subjectOptionMap);
+ final String subject =
subjectSubstitutor.replace(emailTemplate.getTemplateSubject());
+
+ final StrSubstitutor bodySubstitutor = new
StrSubstitutor(bodyOptionMap);
+ final String body =
bodySubstitutor.replace(emailTemplate.getTemplateBody());
+
try {
sendQuotaAlert(account.getUuid(), emailRecipients, subject,
body);
emailToBeSent.sentSuccessfully(_quotaAcc);
@@ -237,6 +237,34 @@ public class QuotaAlertManagerImpl extends ManagerBase
implements QuotaAlertMana
}
}
+ /*
+ *
+ *
+ */
+ public Map<String, String> generateOptionMap(AccountVO accountVO, String
userNames, DomainVO domainVO, final BigDecimal balance, final BigDecimal usage,
+ final
QuotaConfig.QuotaEmailTemplateTypes emailType, boolean escapeHtml) {
+ final Map<String, String> optionMap = new HashMap<>();
+ optionMap.put("accountID", accountVO.getUuid());
+ optionMap.put("domainID", domainVO.getUuid());
+ optionMap.put("quotaBalance", QuotaConfig.QuotaCurrencySymbol.value()
+ " " + balance.toString());
+
+ if (emailType == QuotaEmailTemplateTypes.QUOTA_STATEMENT) {
+ optionMap.put("quotaUsage",
QuotaConfig.QuotaCurrencySymbol.value() + " " + usage.toString());
+ }
+
+ if (escapeHtml) {
+ optionMap.put(ACCOUNT_NAME,
StringEscapeUtils.escapeHtml(accountVO.getAccountName()));
+ optionMap.put(ACCOUNT_USERS,
StringEscapeUtils.escapeHtml(userNames));
+ optionMap.put(DOMAIN_NAME,
StringEscapeUtils.escapeHtml(domainVO.getName()));
+ return optionMap;
+ }
+
+ optionMap.put(ACCOUNT_NAME, accountVO.getAccountName());
+ optionMap.put(ACCOUNT_USERS, userNames);
+ optionMap.put(DOMAIN_NAME, domainVO.getName());
+ return optionMap;
+ }
+
public static long getDifferenceDays(Date d1, Date d2) {
long diff = d2.getTime() - d1.getTime();
return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
diff --git
a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
index 0227b37eee8..a2c86cd15da 100644
---
a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
+++
b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
@@ -61,7 +61,6 @@ import org.apache.cloudstack.quota.vo.QuotaEmailTemplatesVO;
import org.apache.cloudstack.quota.vo.QuotaTariffVO;
import org.apache.cloudstack.quota.vo.QuotaUsageVO;
import
org.apache.cloudstack.utils.reflectiontostringbuilderutils.ReflectionToStringBuilderUtils;
-import org.apache.commons.lang.StringEscapeUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -552,8 +551,8 @@ public class QuotaResponseBuilderImpl implements
QuotaResponseBuilder {
@Override
public boolean updateQuotaEmailTemplate(QuotaEmailTemplateUpdateCmd cmd) {
final String templateName = cmd.getTemplateName();
- final String templateSubject =
StringEscapeUtils.escapeJavaScript(cmd.getTemplateSubject());
- final String templateBody =
StringEscapeUtils.escapeJavaScript(cmd.getTemplateBody());
+ final String templateSubject = cmd.getTemplateSubject();
+ final String templateBody = cmd.getTemplateBody();
final String locale = cmd.getLocale();
final List<QuotaEmailTemplatesVO> templates =
_quotaEmailTemplateDao.listAllQuotaEmailTemplates(templateName);