juice-shop

Форк
0
/
deluxe-user.component.ts 
60 строк · 2.3 Кб
1
/*
2
 * Copyright (c) 2014-2024 Bjoern Kimminich & the OWASP Juice Shop contributors.
3
 * SPDX-License-Identifier: MIT
4
 */
5

6
import { Component, NgZone, type OnInit } from '@angular/core'
7
import { UserService } from '../Services/user.service'
8
import { ActivatedRoute, Router } from '@angular/router'
9
import { CookieService } from 'ngx-cookie'
10
import { ConfigurationService } from '../Services/configuration.service'
11
import { SocketIoService } from '../Services/socket-io.service'
12

13
@Component({
14
  selector: 'app-deluxe-user',
15
  templateUrl: './deluxe-user.component.html',
16
  styleUrls: ['./deluxe-user.component.scss']
17
})
18

19
export class DeluxeUserComponent implements OnInit {
20
  public membershipCost: number = 0
21
  public error: string = undefined
22
  public applicationName = 'OWASP Juice Shop'
23
  public logoSrc: string = 'assets/public/images/JuiceShop_Logo.png'
24

25
  constructor (private readonly router: Router, private readonly userService: UserService, private readonly cookieService: CookieService, private readonly configurationService: ConfigurationService, private readonly route: ActivatedRoute, private readonly ngZone: NgZone, private readonly io: SocketIoService) {
26
  }
27

28
  ngOnInit () {
29
    this.configurationService.getApplicationConfiguration().subscribe((config) => {
30
      const decalParam: string = this.route.snapshot.queryParams.testDecal // "Forgotten" test parameter to play with different stickers on the delivery box image
31
      if (config?.application) {
32
        if (config.application.name) {
33
          this.applicationName = config.application.name
34
        }
35
        if (config.application.logo) {
36
          let logo: string = config.application.logo
37

38
          if (logo.substring(0, 4) === 'http') {
39
            logo = decodeURIComponent(logo.substring(logo.lastIndexOf('/') + 1))
40
          }
41
          this.logoSrc = `assets/public/images/${decalParam || logo}`
42
        }
43
      }
44
      if (decalParam) {
45
        this.ngZone.runOutsideAngular(() => {
46
          this.io.socket().emit('verifySvgInjectionChallenge', decalParam)
47
        })
48
      }
49
    }, (err) => { console.log(err) })
50
    this.userService.deluxeStatus().subscribe((res) => {
51
      this.membershipCost = res.membershipCost
52
    }, (err) => {
53
      this.error = err.error.error
54
    })
55
  }
56

57
  upgradeToDeluxe () {
58
    this.ngZone.run(async () => await this.router.navigate(['/payment', 'deluxe']))
59
  }
60
}
61

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.