diff --git a/application/build.gradle b/application/build.gradle index 8074ea1d81..ce8b10f994 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -49,7 +49,7 @@ ospackage { from(mainJar) { // Strip the version from the jar filename rename { String fileName -> - fileName.replace("-${project.version}", "") + "${pkgName}.jar" } fileMode 0500 into "bin" diff --git a/application/pom.xml b/application/pom.xml index 268f6993d7..0c531216fb 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -379,6 +379,7 @@ org.springframework.boot spring-boot-maven-plugin + boot ZIP true true @@ -408,7 +409,7 @@ -PprojectBuildDir=${project.build.directory} -PprojectVersion=${project.version} - -PmainJar=${project.build.directory}/${project.build.finalName}.${project.packaging} + -PmainJar=${project.build.directory}/${project.build.finalName}-boot.${project.packaging} -PpkgName=${pkg.name} -PpkgInstallFolder=${pkg.installFolder} -PpkgLogFolder=${pkg.logFolder} diff --git a/application/src/main/java/org/thingsboard/server/config/ThingsboardMessageConfiguration.java b/application/src/main/java/org/thingsboard/server/config/ThingsboardMessageConfiguration.java index 99bec5b946..f1ef6e1227 100644 --- a/application/src/main/java/org/thingsboard/server/config/ThingsboardMessageConfiguration.java +++ b/application/src/main/java/org/thingsboard/server/config/ThingsboardMessageConfiguration.java @@ -18,12 +18,14 @@ package org.thingsboard.server.config; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import org.springframework.context.support.ResourceBundleMessageSource; @Configuration public class ThingsboardMessageConfiguration { @Bean + @Primary public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasename("i18n/messages"); diff --git a/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java b/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java index e06962b43f..6d0f1102b8 100644 --- a/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java +++ b/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java @@ -33,7 +33,7 @@ import java.util.List; @RequestMapping("/api") public class WidgetsBundleController extends BaseController { - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @RequestMapping(value = "/widgetsBundle/{widgetsBundleId}", method = RequestMethod.GET) @ResponseBody public WidgetsBundle getWidgetsBundleById(@PathVariable("widgetsBundleId") String strWidgetsBundleId) throws ThingsboardException { @@ -76,7 +76,7 @@ public class WidgetsBundleController extends BaseController { } } - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @RequestMapping(value = "/widgetsBundles", params = { "limit" }, method = RequestMethod.GET) @ResponseBody public TextPageData getWidgetsBundles( @@ -97,7 +97,7 @@ public class WidgetsBundleController extends BaseController { } } - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @RequestMapping(value = "/widgetsBundles", method = RequestMethod.GET) @ResponseBody public List getWidgetsBundles() throws ThingsboardException { diff --git a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java index b11517cc6b..70949d2757 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java @@ -26,6 +26,7 @@ import javax.mail.internet.MimeMessage; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.velocity.app.VelocityEngine; +import org.springframework.beans.factory.annotation.Qualifier; import org.thingsboard.server.exception.ThingsboardErrorCode; import org.thingsboard.server.exception.ThingsboardException; import org.thingsboard.server.common.data.AdminSettings; @@ -50,6 +51,7 @@ public class DefaultMailService implements MailService { private MessageSource messages; @Autowired + @Qualifier("velocityEngine") private VelocityEngine engine; private JavaMailSenderImpl mailSender; @@ -101,6 +103,11 @@ public class DefaultMailService implements MailService { throw new IncorrectParameterException(String.format("Invalid smtp port value: %s", strPort)); } } + + @Override + public void sendEmail(String email, String subject, String message) throws ThingsboardException { + sendMail(mailSender, mailFrom, email, subject, message); + } @Override public void sendTestMail(JsonNode jsonConfig, String email) throws ThingsboardException { diff --git a/application/src/main/java/org/thingsboard/server/service/mail/MailService.java b/application/src/main/java/org/thingsboard/server/service/mail/MailService.java index e1352533d4..9e440589c7 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/MailService.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/MailService.java @@ -22,6 +22,8 @@ import com.fasterxml.jackson.databind.JsonNode; public interface MailService { void updateMailConfiguration(); + + void sendEmail(String email, String subject, String message) throws ThingsboardException; void sendTestMail(JsonNode config, String email) throws ThingsboardException; diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java index 17784d188b..a3ab6bd09a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java @@ -156,7 +156,7 @@ public class UserServiceImpl implements UserService { UserCredentialsEntity userCredentialsEntity = userCredentialsDao.findByUserId(userEntity.getId()); UserCredentials userCredentials = getData(userCredentialsEntity); if (!userCredentials.isEnabled()) { - throw new IncorrectParameterException("Unable to reset password for unactive user"); + throw new IncorrectParameterException("Unable to reset password for inactive user"); } userCredentials.setResetToken(RandomStringUtils.randomAlphanumeric(30)); return saveUserCredentials(userCredentials);