From: Tiago Melo Date: Fri, 3 Aug 2018 17:47:59 +0000 (+0100) Subject: mgr/dashboard: Escape regex pattern in DeletionModalComponent X-Git-Tag: v14.0.1~652^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6953c561e4ec65728fd9c35f5d4840a32a3ad4ba;p=ceph-ci.git mgr/dashboard: Escape regex pattern in DeletionModalComponent Fixes: http://tracker.ceph.com/issues/24902 Signed-off-by: Tiago Melo --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.html b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.html index 365686522c5..ca2f4ca5138 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.html @@ -30,7 +30,7 @@ name="confirmation" id="confirmation" [placeholder]="pattern" - [pattern]="pattern" + [pattern]="escapeRegExp(pattern)" autocomplete="off" (keyup)="updateConfirmation($event)" formControlName="confirmation" diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.spec.ts index 8bb94293eab..e1abdb03739 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.spec.ts @@ -286,6 +286,14 @@ describe('DeletionModalComponent', () => { testValidation(false, undefined, false); testValidation(true, undefined, false); }); + + it('should test regex pattern', () => { + component.pattern = 'a+b'; + changeValue('ab'); + testValidation(false, 'pattern', true); + changeValue('a+b'); + testValidation(false, 'pattern', false); + }); }); describe('deletion call', () => { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.ts index caf9d08b38f..4eaab360650 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/deletion-modal/deletion-modal.component.ts @@ -93,4 +93,8 @@ export class DeletionModalComponent implements OnInit { stopLoadingSpinner() { this.deletionForm.setErrors({ cdSubmitButton: true }); } + + escapeRegExp(text) { + return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + } }