]>
Commit | Line | Data |
---|---|---|
d12b40fb C |
1 | import { Subject } from 'rxjs' |
2 | import { Component, Input, OnInit } from '@angular/core' | |
3 | import { AuthService, ConfirmService, Notifier, User } from '@app/core' | |
2166c058 | 4 | import { TwoFactorService } from '@app/shared/shared-users' |
d12b40fb C |
5 | |
6 | @Component({ | |
7 | selector: 'my-account-two-factor-button', | |
8 | templateUrl: './my-account-two-factor-button.component.html' | |
9 | }) | |
10 | export class MyAccountTwoFactorButtonComponent implements OnInit { | |
11 | @Input() user: User = null | |
12 | @Input() userInformationLoaded: Subject<any> | |
13 | ||
14 | twoFactorEnabled = false | |
15 | ||
16 | constructor ( | |
17 | private notifier: Notifier, | |
18 | private twoFactorService: TwoFactorService, | |
19 | private confirmService: ConfirmService, | |
20 | private auth: AuthService | |
21 | ) { | |
22 | } | |
23 | ||
24 | ngOnInit () { | |
25 | this.userInformationLoaded.subscribe(() => { | |
26 | this.twoFactorEnabled = this.user.twoFactorEnabled | |
27 | }) | |
28 | } | |
29 | ||
30 | async disableTwoFactor () { | |
31 | const message = $localize`Are you sure you want to disable two factor authentication of your account?` | |
32 | ||
33 | const { confirmed, password } = await this.confirmService.confirmWithPassword(message, $localize`Disable two factor`) | |
34 | if (confirmed === false) return | |
35 | ||
36 | this.twoFactorService.disableTwoFactor({ userId: this.user.id, currentPassword: password }) | |
37 | .subscribe({ | |
38 | next: () => { | |
39 | this.twoFactorEnabled = false | |
40 | ||
41 | this.auth.refreshUserInformation() | |
42 | ||
43 | this.notifier.success($localize`Two factor authentication disabled`) | |
44 | }, | |
45 | ||
46 | error: err => this.notifier.error(err.message) | |
47 | }) | |
48 | } | |
49 | } |