Browse Source

Correct processing requests and sending response

pull/4993/head
AndrewVolosytnykhThingsboard 5 years ago
parent
commit
fe7374f21d
  1. 6
      application/src/main/java/org/thingsboard/server/controller/AdminController.java
  2. 1
      application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java
  3. 4
      dao/src/main/java/org/thingsboard/server/dao/settings/AdminSettingsServiceImpl.java
  4. 4
      ui-ngx/src/app/modules/home/pages/admin/mail-server.component.html
  5. 8
      ui-ngx/src/app/modules/home/pages/admin/mail-server.component.ts
  6. 2
      ui-ngx/src/app/shared/models/settings.models.ts

6
application/src/main/java/org/thingsboard/server/controller/AdminController.java

@ -26,12 +26,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.thingsboard.rule.engine.api.MailService;
import org.thingsboard.rule.engine.api.SmsService;
import org.thingsboard.server.common.data.sms.config.TestSmsRequest;
import org.thingsboard.server.common.data.AdminSettings;
import org.thingsboard.server.common.data.UpdateMessage;
import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.security.model.SecuritySettings;
import org.thingsboard.server.common.data.sms.config.TestSmsRequest;
import org.thingsboard.server.dao.settings.AdminSettingsService;
import org.thingsboard.server.queue.util.TbCoreComponent;
import org.thingsboard.server.service.security.permission.Operation;
@ -67,7 +67,7 @@ public class AdminController extends BaseController {
accessControlService.checkPermission(getCurrentUser(), Resource.ADMIN_SETTINGS, Operation.READ);
AdminSettings adminSettings = checkNotNull(adminSettingsService.findAdminSettingsByKey(TenantId.SYS_TENANT_ID, key));
if (adminSettings.getKey().equals("mail")) {
((ObjectNode) adminSettings.getJsonValue()).put("password", "");
((ObjectNode) adminSettings.getJsonValue()).remove("password");
}
return adminSettings;
} catch (Exception e) {
@ -84,7 +84,7 @@ public class AdminController extends BaseController {
adminSettings = checkNotNull(adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, adminSettings));
if (adminSettings.getKey().equals("mail")) {
mailService.updateMailConfiguration();
((ObjectNode) adminSettings.getJsonValue()).put("password", "");
((ObjectNode) adminSettings.getJsonValue()).remove("password");
} else if (adminSettings.getKey().equals("sms")) {
smsService.updateSmsConfiguration();
}

1
application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java

@ -215,6 +215,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService {
node.put("password", "");
node.put("tlsVersion", "TLSv1.2");//NOSONAR, key used to identify password field (not password value itself)
node.put("enableProxy", false);
node.put("isDemo", true);
mailSettings.setJsonValue(node);
adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, mailSettings);
}

4
dao/src/main/java/org/thingsboard/server/dao/settings/AdminSettingsServiceImpl.java

@ -52,7 +52,7 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
public AdminSettings saveAdminSettings(TenantId tenantId, AdminSettings adminSettings) {
log.trace("Executing saveAdminSettings [{}]", adminSettings);
adminSettingsValidator.validate(adminSettings, data -> tenantId);
if (adminSettings.getKey().equals("mail") && "".equals(adminSettings.getJsonValue().get("password").asText())) {
if(adminSettings.getKey().equals("mail") && !adminSettings.getJsonValue().has("password")) {
AdminSettings mailSettings = findAdminSettingsByKey(tenantId, "mail");
if (mailSettings != null) {
((ObjectNode) adminSettings.getJsonValue()).put("password", mailSettings.getJsonValue().get("password").asText());
@ -61,7 +61,7 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
return adminSettingsDao.save(tenantId, adminSettings);
}
private DataValidator<AdminSettings> adminSettingsValidator =
new DataValidator<AdminSettings>() {

4
ui-ngx/src/app/modules/home/pages/admin/mail-server.component.html

@ -126,10 +126,10 @@
<input matInput formControlName="username" placeholder="{{ 'common.enter-username' | translate }}"
autocomplete="new-username"/>
</mat-form-field>
<mat-checkbox *ngIf="!isAdd" formControlName="changePassword" style="padding-bottom: 16px;">
<mat-checkbox *ngIf="!isDemo" formControlName="changePassword" style="padding-bottom: 16px;">
{{ 'admin.change-password' | translate }}
</mat-checkbox>
<mat-form-field class="mat-block" *ngIf="mailSettings.get('changePassword').value || isAdd">
<mat-form-field class="mat-block" *ngIf="mailSettings.get('changePassword').value || isDemo">
<mat-label translate>common.password</mat-label>
<input matInput formControlName="password" type="password"
placeholder="{{ 'common.enter-password' | translate }}" autocomplete="new-password">

8
ui-ngx/src/app/modules/home/pages/admin/mail-server.component.ts

@ -39,7 +39,7 @@ export class MailServerComponent extends PageComponent implements OnInit, OnDest
mailSettings: FormGroup;
adminSettings: AdminSettings<MailServerSettings>;
smtpProtocols = ['smtp', 'smtps'];
isAdd = true;
isDemo = true;
tlsVersions = ['TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'];
@ -61,10 +61,10 @@ export class MailServerComponent extends PageComponent implements OnInit, OnDest
if (this.adminSettings.jsonValue && isString(this.adminSettings.jsonValue.enableTls)) {
this.adminSettings.jsonValue.enableTls = (this.adminSettings.jsonValue.enableTls as any) === 'true';
}
this.isAdd = this.adminSettings.jsonValue.isAdd;
delete this.adminSettings.jsonValue.isAdd;
this.isDemo = this.adminSettings.jsonValue.isDemo;
delete this.adminSettings.jsonValue.isDemo;
this.mailSettings.reset(this.adminSettings.jsonValue);
this.enableMailPassword(this.isAdd);
this.enableMailPassword(this.isDemo);
this.enableProxyChanged();
}
);

2
ui-ngx/src/app/shared/models/settings.models.ts

@ -27,7 +27,7 @@ export interface AdminSettings<T> {
export declare type SmtpProtocol = 'smtp' | 'smtps';
export interface MailServerSettings {
isAdd: boolean;
isDemo: boolean;
mailFrom: string;
smtpProtocol: SmtpProtocol;
smtpHost: string;

Loading…
Cancel
Save