Skip to content
Snippets Groups Projects
Commit 16cbf261 authored by jojohoch's avatar jojohoch
Browse files

Sanitize `innerHTML` with pipe

parent 781ded38
No related branches found
No related tags found
No related merge requests found
...@@ -34,6 +34,7 @@ import { AudioComponent } from './element-components/audio.component'; ...@@ -34,6 +34,7 @@ import { AudioComponent } from './element-components/audio.component';
import { SafeResourceUrlPipe } from './element-components/pipes/safe-resource-url.pipe'; import { SafeResourceUrlPipe } from './element-components/pipes/safe-resource-url.pipe';
import { InputBackgroundColorDirective } from './element-components/directives/input-background-color.directive'; import { InputBackgroundColorDirective } from './element-components/directives/input-background-color.directive';
import { ErrorTransformPipe } from './element-components/pipes/error-transform.pipe'; import { ErrorTransformPipe } from './element-components/pipes/error-transform.pipe';
import { SafeResourceHTMLPipe } from './element-components/pipes/safe-resource-html.pipe';
@NgModule({ @NgModule({
imports: [ imports: [
...@@ -64,7 +65,8 @@ import { ErrorTransformPipe } from './element-components/pipes/error-transform.p ...@@ -64,7 +65,8 @@ import { ErrorTransformPipe } from './element-components/pipes/error-transform.p
DropdownComponent, DropdownComponent,
SafeResourceUrlPipe, SafeResourceUrlPipe,
InputBackgroundColorDirective, InputBackgroundColorDirective,
ErrorTransformPipe ErrorTransformPipe,
SafeResourceHTMLPipe
], ],
exports: [ exports: [
CommonModule, CommonModule,
...@@ -97,7 +99,8 @@ import { ErrorTransformPipe } from './element-components/pipes/error-transform.p ...@@ -97,7 +99,8 @@ import { ErrorTransformPipe } from './element-components/pipes/error-transform.p
MatSnackBarModule, MatSnackBarModule,
MatTooltipModule, MatTooltipModule,
MatDialogModule, MatDialogModule,
TranslateModule TranslateModule,
SafeResourceHTMLPipe
] ]
}) })
export class SharedModule { } export class SharedModule { }
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
@Pipe({
name: 'safeResourceHTML'
})
export class SafeResourceHTMLPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {}
transform(resourceUrl: string): SafeResourceUrl {
return this.sanitizer.bypassSecurityTrustHtml(resourceUrl);
}
}
...@@ -34,7 +34,7 @@ import { ElementComponent } from '../element-component.directive'; ...@@ -34,7 +34,7 @@ import { ElementComponent } from '../element-component.directive';
[style.font-weight]="elementModel.bold ? 'bold' : ''" [style.font-weight]="elementModel.bold ? 'bold' : ''"
[style.font-style]="elementModel.italic ? 'italic' : ''" [style.font-style]="elementModel.italic ? 'italic' : ''"
[style.text-decoration]="elementModel.underline ? 'underline' : ''" [style.text-decoration]="elementModel.underline ? 'underline' : ''"
[innerHTML]="sanitizer.bypassSecurityTrustHtml(elementModel.text)" [innerHTML]="elementModel.text | safeResourceHTML"
#container> #container>
</div> </div>
</div> </div>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<ng-container *ngIf="combinedProperties.text"> <ng-container *ngIf="combinedProperties.text">
Text Text
<div class="text-text" [innerHTML]="sanitizer.bypassSecurityTrustHtml($any(combinedProperties.text))" <div class="text-text" [innerHTML]="combinedProperties.text | safeResourceHTML"
(click)="unitService.showDefaultEditDialog(selectedElements[0])"> (click)="unitService.showDefaultEditDialog(selectedElements[0])">
</div> </div>
</ng-container> </ng-container>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment