Commit 5e2c06700e460a01df5ec8c1d94eec30aea07046
Committed by
GitHub
Merge pull request #3326 from YevhenBondarenko/develop/2.5.4-mail
smtp password
Showing
3 changed files
with
18 additions
and
4 deletions
@@ -15,6 +15,7 @@ | @@ -15,6 +15,7 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.controller; | 16 | package org.thingsboard.server.controller; |
17 | 17 | ||
18 | +import com.fasterxml.jackson.databind.node.ObjectNode; | ||
18 | import org.springframework.beans.factory.annotation.Autowired; | 19 | import org.springframework.beans.factory.annotation.Autowired; |
19 | import org.springframework.security.access.prepost.PreAuthorize; | 20 | import org.springframework.security.access.prepost.PreAuthorize; |
20 | import org.springframework.web.bind.annotation.PathVariable; | 21 | import org.springframework.web.bind.annotation.PathVariable; |
@@ -59,7 +60,11 @@ public class AdminController extends BaseController { | @@ -59,7 +60,11 @@ public class AdminController extends BaseController { | ||
59 | public AdminSettings getAdminSettings(@PathVariable("key") String key) throws ThingsboardException { | 60 | public AdminSettings getAdminSettings(@PathVariable("key") String key) throws ThingsboardException { |
60 | try { | 61 | try { |
61 | accessControlService.checkPermission(getCurrentUser(), Resource.ADMIN_SETTINGS, Operation.READ); | 62 | accessControlService.checkPermission(getCurrentUser(), Resource.ADMIN_SETTINGS, Operation.READ); |
62 | - return checkNotNull(adminSettingsService.findAdminSettingsByKey(TenantId.SYS_TENANT_ID, key)); | 63 | + AdminSettings adminSettings = checkNotNull(adminSettingsService.findAdminSettingsByKey(TenantId.SYS_TENANT_ID, key)); |
64 | + if (adminSettings.getKey().equals("mail")) { | ||
65 | + ((ObjectNode) adminSettings.getJsonValue()).put("password", ""); | ||
66 | + } | ||
67 | + return adminSettings; | ||
63 | } catch (Exception e) { | 68 | } catch (Exception e) { |
64 | throw handleException(e); | 69 | throw handleException(e); |
65 | } | 70 | } |
@@ -74,6 +79,7 @@ public class AdminController extends BaseController { | @@ -74,6 +79,7 @@ public class AdminController extends BaseController { | ||
74 | adminSettings = checkNotNull(adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, adminSettings)); | 79 | adminSettings = checkNotNull(adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, adminSettings)); |
75 | if (adminSettings.getKey().equals("mail")) { | 80 | if (adminSettings.getKey().equals("mail")) { |
76 | mailService.updateMailConfiguration(); | 81 | mailService.updateMailConfiguration(); |
82 | + ((ObjectNode) adminSettings.getJsonValue()).put("password", ""); | ||
77 | } | 83 | } |
78 | return adminSettings; | 84 | return adminSettings; |
79 | } catch (Exception e) { | 85 | } catch (Exception e) { |
@@ -15,6 +15,7 @@ | @@ -15,6 +15,7 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.dao.settings; | 16 | package org.thingsboard.server.dao.settings; |
17 | 17 | ||
18 | +import com.fasterxml.jackson.databind.node.ObjectNode; | ||
18 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
19 | import org.apache.commons.lang3.StringUtils; | 20 | import org.apache.commons.lang3.StringUtils; |
20 | import org.springframework.beans.factory.annotation.Autowired; | 21 | import org.springframework.beans.factory.annotation.Autowired; |
@@ -52,6 +53,13 @@ public class AdminSettingsServiceImpl implements AdminSettingsService { | @@ -52,6 +53,13 @@ public class AdminSettingsServiceImpl implements AdminSettingsService { | ||
52 | public AdminSettings saveAdminSettings(TenantId tenantId, AdminSettings adminSettings) { | 53 | public AdminSettings saveAdminSettings(TenantId tenantId, AdminSettings adminSettings) { |
53 | log.trace("Executing saveAdminSettings [{}]", adminSettings); | 54 | log.trace("Executing saveAdminSettings [{}]", adminSettings); |
54 | adminSettingsValidator.validate(adminSettings, data -> tenantId); | 55 | adminSettingsValidator.validate(adminSettings, data -> tenantId); |
56 | + if (adminSettings.getKey().equals("mail") && "".equals(adminSettings.getJsonValue().get("password").asText())) { | ||
57 | + AdminSettings mailSettings = findAdminSettingsByKey(tenantId, "mail"); | ||
58 | + if (mailSettings != null) { | ||
59 | + ((ObjectNode) adminSettings.getJsonValue()).put("password", mailSettings.getJsonValue().get("password").asText()); | ||
60 | + } | ||
61 | + } | ||
62 | + | ||
55 | return adminSettingsDao.save(tenantId, adminSettings); | 63 | return adminSettingsDao.save(tenantId, adminSettings); |
56 | } | 64 | } |
57 | 65 |
@@ -123,16 +123,16 @@ | @@ -123,16 +123,16 @@ | ||
123 | </md-input-container> | 123 | </md-input-container> |
124 | <md-input-container class="md-block"> | 124 | <md-input-container class="md-block"> |
125 | <label translate>admin.proxy-password</label> | 125 | <label translate>admin.proxy-password</label> |
126 | - <input name="proxyPassword" ng-model="vm.settings.jsonValue.proxyPassword"> | 126 | + <input name="proxyPassword" type="password" autocomplete="new-password" ng-model="vm.settings.jsonValue.proxyPassword"> |
127 | </md-input-container> | 127 | </md-input-container> |
128 | </section> | 128 | </section> |
129 | <md-input-container class="md-block"> | 129 | <md-input-container class="md-block"> |
130 | <label translate>common.username</label> | 130 | <label translate>common.username</label> |
131 | - <input name="username" placeholder="{{ 'common.enter-username' | translate }}" ng-model="vm.settings.jsonValue.username"> | 131 | + <input placeholder="{{ 'common.enter-username' | translate }}" ng-model="vm.settings.jsonValue.username" autocomplete="new-username" > |
132 | </md-input-container> | 132 | </md-input-container> |
133 | <md-input-container class="md-block"> | 133 | <md-input-container class="md-block"> |
134 | <label translate>common.password</label> | 134 | <label translate>common.password</label> |
135 | - <input name="password" placeholder="{{ 'common.enter-password' | translate }}" type="password" ng-model="vm.settings.jsonValue.password"> | 135 | + <input placeholder="{{ 'common.enter-password' | translate }}" type="password" ng-model="vm.settings.jsonValue.password" autocomplete="new-password"> |
136 | </md-input-container> | 136 | </md-input-container> |
137 | <div layout="row" layout-align="end center" width="100%" layout-wrap> | 137 | <div layout="row" layout-align="end center" width="100%" layout-wrap> |
138 | <md-button ng-disabled="$root.loading || vm.settingsForm.$invalid" ng-click="vm.sendTestMail()" class="md-raised">{{'admin.send-test-mail' | translate}}</md-button> | 138 | <md-button ng-disabled="$root.loading || vm.settingsForm.$invalid" ng-click="vm.sendTestMail()" class="md-raised">{{'admin.send-test-mail' | translate}}</md-button> |