Skip to content

Commit

Permalink
Merge pull request #10985 from vvlladd28/bug/lwm2m-transtort/short-se…
Browse files Browse the repository at this point in the history
…rver-id-validation

Fixed validation short server id for bootstrap server in LwM2M transport configuration
  • Loading branch information
ikulikov committed Jun 12, 2024
2 parents ea00ab9 + d644da8 commit 1273558
Show file tree
Hide file tree
Showing 14 changed files with 32 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<div *ngFor="let serverConfig of serverConfigsFromArray.controls; trackBy: trackByParams; let $index = index;">
<tb-profile-lwm2m-device-config-server
[formControl]="serverConfig"
[isBootstrap]="serverConfig.value.bootstrapServerIs"
(removeServer)="removeServerConfig($event, $index)"
(isTransportWasRunWithBootstrapChange)="updateIsTransportWasRunWithBootstrap($event)">
</tb-profile-lwm2m-device-config-server>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
</div>
</div>
</mat-panel-title>
<span fxFlex></span>
<span fxFlex="100"></span>
<button *ngIf="!disabled" mat-icon-button style="min-width: 40px;"
type="button"
(click)="removeServer.emit($event)"
Expand All @@ -57,8 +57,8 @@
<mat-form-field fxFlex>
<mat-label>{{ 'device-profile.lwm2m.short-id' | translate }}</mat-label>
<mat-icon *ngIf="!disabled" class="mat-primary" aria-hidden="false" aria-label="help-icon" matSuffix style="cursor:pointer;"
matTooltip="{{'device-profile.lwm2m.short-id-tooltip' | translate }}">help</mat-icon>
<input matInput type="number" min="1" max="65534" formControlName="shortServerId" required>
matTooltip="{{ (isBootstrap ? 'device-profile.lwm2m.short-id-tooltip-bootstrap': 'device-profile.lwm2m.short-id-tooltip') | translate }}">help</mat-icon>
<input matInput type="number" [min]="shortServerIdMin" [max]="shortServerIdMax" formControlName="shortServerId" required>
<mat-error *ngIf="serverFormGroup.get('shortServerId').hasError('required')">
{{ 'device-profile.lwm2m.short-id-required' | translate }}
</mat-error>
Expand All @@ -67,7 +67,7 @@
</mat-error>
<mat-error *ngIf="serverFormGroup.get('shortServerId').hasError('min') ||
serverFormGroup.get('shortServerId').hasError('max')">
{{ 'device-profile.lwm2m.short-id-range' | translate }}
{{ 'device-profile.lwm2m.short-id-range' | translate : {min: shortServerIdMin, max: shortServerIdMax} }}
</mat-error>
</mat-form-field>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import {
Lwm2mSecurityType,
Lwm2mSecurityTypeTranslationMap
} from '@shared/models/lwm2m-security-config.models';
import { coerceBoolean } from '@shared/decorators/coercion';

@Component({
selector: 'tb-profile-lwm2m-device-config-server',
Expand Down Expand Up @@ -73,6 +74,13 @@ export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAcc
currentSecurityMode = null;
bootstrapDisabled = false;

shortServerIdMin = 1;
shortServerIdMax = 65534;

@Input()
@coerceBoolean()
isBootstrap = false;

@Output()
removeServer = new EventEmitter();

Expand All @@ -86,13 +94,18 @@ export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAcc
}

ngOnInit(): void {
if (this.isBootstrap) {
this.shortServerIdMin = 0;
this.shortServerIdMax = 65535;
}
this.serverFormGroup = this.fb.group({
host: ['', Validators.required],
port: ['', [Validators.required, Validators.min(1), Validators.max(65535), Validators.pattern('[0-9]*')]],
securityMode: [Lwm2mSecurityType.NO_SEC],
serverPublicKey: [''],
clientHoldOffTime: ['', [Validators.required, Validators.min(0), Validators.pattern('[0-9]*')]],
shortServerId: ['', [Validators.required, Validators.min(1), Validators.max(65534), Validators.pattern('[0-9]*')]],
shortServerId: ['',
[Validators.required, Validators.min(this.shortServerIdMin), Validators.max(this.shortServerIdMax), Validators.pattern('[0-9]*')]],
bootstrapServerAccountTimeout: ['', [Validators.required, Validators.min(0), Validators.pattern('[0-9]*')]],
binding: [''],
lifetime: [null, [Validators.required, Validators.min(0), Validators.pattern('[0-9]*')]],
Expand Down Expand Up @@ -199,7 +212,7 @@ export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAcc
if (value !== undefined) {
this.propagateChange(value);
}
}
};

private getLwm2mBootstrapSecurityInfo(securityMode = Lwm2mSecurityType.NO_SEC): Observable<ServerSecurityConfig> {
return this.deviceProfileService.getLwm2mBootstrapSecurityInfoBySecurityType(
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-ar_AE.json
Original file line number Diff line number Diff line change
Expand Up @@ -2000,7 +2000,7 @@
"short-id": "معرف الخادم القصير",
"short-id-tooltip": "معرف الخادم القصير. يُستخدم كرابط لربط نموذج كائن الخادم.\nهذا المعرف يُميز بشكل فريد كل خادم LwM2M المُعد للعميل LwM2M.\nيجب ضبط المورد عندما يكون مورد الخادم التمهيدي بقيمة 'false'.\nلا يجب استخدام قيم المعرف ID:0 و ID:65535 لتحديد خادم LwM2M.",
"short-id-required": "معرف الخادم القصير مطلوب.",
"short-id-range": "يجب أن يكون معرف الخادم القصير ضمن نطاق من 1 إلى 65534.",
"short-id-range": "يجب أن يكون معرف الخادم القصير ضمن نطاق من {{ min }} إلى {{ max }}.",
"short-id-pattern": "يجب أن يكون معرف الخادم القصير عددًا صحيحًا موجبًا.",
"lifetime": "مدة تسجيل العميل",
"lifetime-required": "مدة تسجيل العميل مطلوبة.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-ca_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -1632,7 +1632,7 @@
"short-id": "Identificador curt del servidor",
"short-id-tooltip": "Identificador curt del servidor. S'utilitza com a enllaç a la instància d'objecte del servidor associada.\nAquest identificador identifica de manera única cada servidor LwM2M configurat per al client LwM2M.\nEl recurs S'HA d'establir quan el recurs del servidor Bootstrap té un valor 'fals'.\nEls valors ID:0 i ID :65535 NO S'HAN d'utilitzar per identificar el servidor LwM2M.",
"short-id-required": "Cal identificador curt del servidor.",
"short-id-range": "L'identificador de servidor curt hauria d'estar entre 1 i 65534.",
"short-id-range": "L'identificador de servidor curt hauria d'estar entre {{ min }} i {{ max }}.",
"short-id-pattern": "L'identificador de servidor curt ha de ser un nombre enter positiu.",
"lifetime": "Vida útil del registre del client",
"lifetime-required": "Cal vida útil del registre del client.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-cs_CZ.json
Original file line number Diff line number Diff line change
Expand Up @@ -1247,7 +1247,7 @@
"mode": "Režim konfigurace bezpečnosti",
"short-id": "Krátké ID",
"short-id-required": "Krátké ID je povinné.",
"short-id-range": "Krátké ID by mělo být v rozsahu od 1 do 65534.",
"short-id-range": "Krátké ID by mělo být v rozsahu od {{ min }} do {{ max }}.",
"short-id-pattern": "Krátké ID musí být kladné celé číslo.",
"lifetime": "Doba platnosti registrace klienta",
"lifetime-required": "Doba platnosti registrace klienta je povinná.",
Expand Down
3 changes: 2 additions & 1 deletion ui-ngx/src/assets/locale/locale.constant-en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -1860,8 +1860,9 @@
"server": "Server",
"short-id": "Short server ID",
"short-id-tooltip": "Server short Id. Used as link to associate server Object Instance.\nThis identifier uniquely identifies each LwM2M Server configured for the LwM2M Client.\nResource MUST be set when the Bootstrap-Server Resource has a value of 'false'.\nThe values ID:0 and ID:65535 values MUST NOT be used for identifying the LwM2M Server.",
"short-id-tooltip-bootstrap": "Server short Id. Used as link to associate server Object Instance.\nThis identifier uniquely identifies each LwM2M Server configured for the LwM2M Client.\nResource MUST be set when the Bootstrap-Server Resource has a value of 'false'.",
"short-id-required": "Short server ID is required.",
"short-id-range": "Short server ID should be in a range from 1 to 65534.",
"short-id-range": "Short server ID should be in a range from {{ min }} to {{ max }}.",
"short-id-pattern": "Short server ID must be a positive integer.",
"lifetime": "Client registration lifetime",
"lifetime-required": "Client registration lifetime is required.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -1757,7 +1757,7 @@
"short-id": "Short server ID",
"short-id-tooltip": "Id corto del servidor. Usado como enlace para asociar las instancias de objetos del servidor.\nEste identificador sirve para identificar únicamente cada servidor LwM2M configurado para el cliente LwM2M.\nLos recursos DEBEN ser ajustados cuando el servidor Bootstrap tenga un valor de 'false'.\nLos valores ID:0 and ID:65535 NO DEBEN ser usados para identificar al servidor LwM2M.",
"short-id-required": "Se requiere Short server ID.",
"short-id-range": "Short server ID debe estar en un rango de 1 a 65534.",
"short-id-range": "Short server ID debe estar en un rango de {{ min }} a {{ max }}.",
"short-id-pattern": "Short server ID debe ser un número entero positivo.",
"lifetime": "Ciclo de vida registro de cliente (Registration Lifetime)",
"lifetime-required": "Se requiere ciclo de vida.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-lt_LT.json
Original file line number Diff line number Diff line change
Expand Up @@ -1970,7 +1970,7 @@
"short-id": "Short server ID",
"short-id-tooltip": "Server short Id. Used as link to associate server Object Instance.\nThis identifier uniquely identifies each LwM2M Server configured for the LwM2M Client.\nResource MUST be set when the Bootstrap-Server Resource has a value of 'false'.\nThe values ID:0 and ID:65535 values MUST NOT be used for identifying the LwM2M Server.",
"short-id-required": "Short server ID is required.",
"short-id-range": "Short server ID should be in a range from 1 to 65534.",
"short-id-range": "Short server ID should be in a range from {{ min }} to {{ max }}.",
"short-id-pattern": "Short server ID must be a positive integer.",
"lifetime": "Client registration lifetime",
"lifetime-required": "Client registration lifetime is required.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-nl_BE.json
Original file line number Diff line number Diff line change
Expand Up @@ -1857,7 +1857,7 @@
"short-id": "Korte server-ID",
"short-id-tooltip": "Server-id kort Id. Wordt gebruikt als koppeling naar het Object-exemplaar van de koppeling.\nDeze id identificeert elke LwM2M-server die is geconfigureerd voor de LwM2M-client op unieke wijze.\nResource MOET worden ingesteld wanneer de Bootstrap-Server Resource een waarde van 'false' heeft.\nDe waarden ID:0 en ID:65535 mogen NIET worden gebruikt voor het identificeren van de LwM2M-server.",
"short-id-required": "Een korte server-ID is vereist.",
"short-id-range": "Korte server-ID moet tussen 1 en 65534 liggen.",
"short-id-range": "Korte server-ID moet tussen {{ min }} en {{ max }} liggen.",
"short-id-pattern": "Korte server-ID moet een positief geheel getal zijn.",
"lifetime": "Levensduur klantregistratie",
"lifetime-required": "Levenslange registratie van klanten is vereist.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-pl_PL.json
Original file line number Diff line number Diff line change
Expand Up @@ -1976,7 +1976,7 @@
"short-id": "Krótki identyfikator serwera",
"short-id-tooltip": "Krótki identyfikator serwera. ",
"short-id-required": "Krótki identyfikator serwera jest wymagany.",
"short-id-range": "Krótki identyfikator serwera powinien mieścić się w zakresie od 1 do 65534.",
"short-id-range": "Krótki identyfikator serwera powinien mieścić się w zakresie od {{ min }} do {{ max }}.",
"short-id-pattern": "Krótki identyfikator serwera musi być dodatnią liczbą całkowitą.",
"lifetime": "Okres rejestracji klienta",
"lifetime-required": "Okres rejestracji klienta jest wymagany.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-tr_TR.json
Original file line number Diff line number Diff line change
Expand Up @@ -1260,7 +1260,7 @@
"mode": "Güvenlik yapılandırma modu",
"short-id": "Kısa ID",
"short-id-required": "Kısa ID gerekli.",
"short-id-range": "Kısa ID 1 ile 65534 aralığında olmalıdır.",
"short-id-range": "Kısa ID {{ min }} ile {{ max }} aralığında olmalıdır.",
"short-id-pattern": "Kısa ID pozitif bir tam sayı olmalıdır.",
"lifetime": "İstemci kayıt ömrü",
"lifetime-required": "İstemci kayıt ömrü gerekli.",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-zh_CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -1794,7 +1794,7 @@
"short-id": "服务器ID",
"short-id-tooltip": "服务器ID用作关联服务器对象实例的链接。",
"short-id-required": "服务器ID必填。",
"short-id-range": "服务器ID应在1到65534范围内。",
"short-id-range": "服务器ID应在{{ min }}到{{ max }}范围内。",
"short-id-pattern": "服务器ID必须是一个正整数。",
"lifetime": "客户端注册生命周期",
"lifetime-required": "客户端注册生命周期必填。",
Expand Down
2 changes: 1 addition & 1 deletion ui-ngx/src/assets/locale/locale.constant-zh_TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,7 @@
"short-id": "短伺服器ID",
"short-id-tooltip": "短伺服器ID。用作關聯伺服器物件實例的鏈接。 \n此標識符唯一標識為LwM2M伺服器客戶端配置的每個LwM2M 伺服器。\n當引導伺服器資源的值為'false'時,必須設置資源。\nID:0值和ID:65535值不得用於識別LwM2M伺服器。.",
"short-id-required": "短伺服器ID必填",
"short-id-range": "短伺服器ID長度需介於1到65534。",
"short-id-range": "短伺服器ID長度需介於{{ min }}到{{ max }}。",
"short-id-pattern": "短伺服器ID需為正整數",
"lifetime": "客戶登記使用期限",
"lifetime-required": "客戶登記使用期限必填",
Expand Down

0 comments on commit 1273558

Please sign in to comment.