mirror of
https://github.com/bitwarden/browser.git
synced 2024-11-23 11:56:00 +01:00
Enforce password reprompt from reports pages (#1225)
This commit is contained in:
parent
fa6f33cbc5
commit
c682f460b2
@ -4,6 +4,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
import { AuditService } from 'jslib-common/abstractions/audit.service';
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -24,8 +25,8 @@ export class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportC
|
||||
|
||||
constructor(cipherService: CipherService, auditService: AuditService,
|
||||
modalService: ModalService, messagingService: MessagingService,
|
||||
userService: UserService, private route: ActivatedRoute) {
|
||||
super(cipherService, auditService, modalService, messagingService, userService);
|
||||
userService: UserService, passwordRepromptService: PasswordRepromptService, private route: ActivatedRoute) {
|
||||
super(cipherService, auditService, modalService, messagingService, userService, passwordRepromptService);
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
@ -3,6 +3,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -19,9 +20,9 @@ import { CipherView } from 'jslib-common/models/view/cipherView';
|
||||
})
|
||||
export class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent {
|
||||
constructor(cipherService: CipherService, modalService: ModalService,
|
||||
messagingService: MessagingService, userService: UserService,
|
||||
messagingService: MessagingService, userService: UserService, passwordRepromptService: PasswordRepromptService,
|
||||
private route: ActivatedRoute) {
|
||||
super(cipherService, modalService, messagingService, userService);
|
||||
super(cipherService, modalService, messagingService, userService, passwordRepromptService);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -3,6 +3,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -23,9 +24,9 @@ export class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportCom
|
||||
manageableCiphers: Cipher[];
|
||||
|
||||
constructor(cipherService: CipherService, modalService: ModalService,
|
||||
messagingService: MessagingService, userService: UserService,
|
||||
messagingService: MessagingService, userService: UserService, passwordRepromptService: PasswordRepromptService,
|
||||
private route: ActivatedRoute) {
|
||||
super(cipherService, modalService, messagingService, userService);
|
||||
super(cipherService, modalService, messagingService, userService, passwordRepromptService);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -3,6 +3,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -19,9 +20,9 @@ import { CipherView } from 'jslib-common/models/view/cipherView';
|
||||
})
|
||||
export class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent {
|
||||
constructor(cipherService: CipherService, modalService: ModalService,
|
||||
messagingService: MessagingService, userService: UserService,
|
||||
messagingService: MessagingService, userService: UserService, passwordRepromptService: PasswordRepromptService,
|
||||
private route: ActivatedRoute) {
|
||||
super(cipherService, modalService, messagingService, userService);
|
||||
super(cipherService, modalService, messagingService, userService, passwordRepromptService);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -4,6 +4,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordGenerationService } from 'jslib-common/abstractions/passwordGeneration.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -25,8 +26,9 @@ export class WeakPasswordsReportComponent extends BaseWeakPasswordsReportCompone
|
||||
|
||||
constructor(cipherService: CipherService, passwordGenerationService: PasswordGenerationService,
|
||||
modalService: ModalService, messagingService: MessagingService,
|
||||
userService: UserService, private route: ActivatedRoute) {
|
||||
super(cipherService, passwordGenerationService, modalService, messagingService, userService);
|
||||
userService: UserService, passwordRepromptService: PasswordRepromptService, private route: ActivatedRoute) {
|
||||
super(cipherService, passwordGenerationService, modalService, messagingService, userService,
|
||||
passwordRepromptService);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -11,7 +11,10 @@ import { Organization } from 'jslib-common/models/domain/organization';
|
||||
import { AddEditComponent as OrgAddEditComponent } from '../organizations/vault/add-edit.component';
|
||||
import { AddEditComponent } from '../vault/add-edit.component';
|
||||
|
||||
import { CipherRepromptType } from 'jslib-common/enums/cipherRepromptType';
|
||||
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -26,7 +29,8 @@ export class CipherReportComponent {
|
||||
organization: Organization;
|
||||
|
||||
constructor(private modalService: ModalService, protected userService: UserService,
|
||||
protected messagingService: MessagingService, public requiresPaid: boolean) { }
|
||||
protected messagingService: MessagingService, protected passwordRepromptService: PasswordRepromptService,
|
||||
public requiresPaid: boolean) { }
|
||||
|
||||
async load() {
|
||||
this.loading = true;
|
||||
@ -36,6 +40,10 @@ export class CipherReportComponent {
|
||||
}
|
||||
|
||||
async selectCipher(cipher: CipherView) {
|
||||
if (!await this.repromptCipher(cipher)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const type = this.organization != null ? OrgAddEditComponent : AddEditComponent;
|
||||
|
||||
const [modal, childComponent] = await this.modalService.openViewRef(type, this.cipherAddEditModalRef, (comp: OrgAddEditComponent | AddEditComponent) => {
|
||||
@ -85,4 +93,8 @@ export class CipherReportComponent {
|
||||
protected async setCiphers() {
|
||||
this.ciphers = [];
|
||||
}
|
||||
|
||||
protected async repromptCipher(c: CipherView) {
|
||||
return c.reprompt === CipherRepromptType.None || await this.passwordRepromptService.showPasswordPrompt();
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import {
|
||||
import { AuditService } from 'jslib-common/abstractions/audit.service';
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -25,8 +26,8 @@ export class ExposedPasswordsReportComponent extends CipherReportComponent imple
|
||||
|
||||
constructor(protected cipherService: CipherService, protected auditService: AuditService,
|
||||
modalService: ModalService, messagingService: MessagingService,
|
||||
userService: UserService) {
|
||||
super(modalService, userService, messagingService, true);
|
||||
userService: UserService, passwordRepromptService: PasswordRepromptService) {
|
||||
super(modalService, userService, messagingService, passwordRepromptService, true);
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
@ -5,6 +5,7 @@ import {
|
||||
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -26,8 +27,8 @@ export class InactiveTwoFactorReportComponent extends CipherReportComponent impl
|
||||
cipherDocs = new Map<string, string>();
|
||||
|
||||
constructor(protected cipherService: CipherService, modalService: ModalService,
|
||||
messagingService: MessagingService, userService: UserService) {
|
||||
super(modalService, userService, messagingService, true);
|
||||
messagingService: MessagingService, userService: UserService, passwordRepromptService: PasswordRepromptService) {
|
||||
super(modalService, userService, messagingService, passwordRepromptService, true);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -5,6 +5,7 @@ import {
|
||||
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -23,8 +24,9 @@ export class ReusedPasswordsReportComponent extends CipherReportComponent implem
|
||||
passwordUseMap: Map<string, number>;
|
||||
|
||||
constructor(protected cipherService: CipherService, modalService: ModalService,
|
||||
messagingService: MessagingService, userService: UserService) {
|
||||
super(modalService, userService, messagingService, true);
|
||||
messagingService: MessagingService, userService: UserService,
|
||||
passwordRepromptService: PasswordRepromptService) {
|
||||
super(modalService, userService, messagingService, passwordRepromptService, true);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -5,6 +5,7 @@ import {
|
||||
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -21,8 +22,8 @@ import { CipherReportComponent } from './cipher-report.component';
|
||||
})
|
||||
export class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit {
|
||||
constructor(protected cipherService: CipherService, modalService: ModalService,
|
||||
messagingService: MessagingService, userService: UserService) {
|
||||
super(modalService, userService, messagingService, true);
|
||||
messagingService: MessagingService, userService: UserService, passwordRepromptService: PasswordRepromptService) {
|
||||
super(modalService, userService, messagingService, passwordRepromptService, true);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
@ -6,6 +6,7 @@ import {
|
||||
import { CipherService } from 'jslib-common/abstractions/cipher.service';
|
||||
import { MessagingService } from 'jslib-common/abstractions/messaging.service';
|
||||
import { PasswordGenerationService } from 'jslib-common/abstractions/passwordGeneration.service';
|
||||
import { PasswordRepromptService } from 'jslib-common/abstractions/passwordReprompt.service';
|
||||
import { UserService } from 'jslib-common/abstractions/user.service';
|
||||
|
||||
import { ModalService } from 'jslib-angular/services/modal.service';
|
||||
@ -27,9 +28,9 @@ export class WeakPasswordsReportComponent extends CipherReportComponent implemen
|
||||
private passwordStrengthCache = new Map<string, number>();
|
||||
|
||||
constructor(protected cipherService: CipherService, protected passwordGenerationService: PasswordGenerationService,
|
||||
modalService: ModalService, messagingService: MessagingService,
|
||||
userService: UserService) {
|
||||
super(modalService, userService, messagingService, true);
|
||||
modalService: ModalService, messagingService: MessagingService, userService: UserService,
|
||||
passwordRepromptService: PasswordRepromptService) {
|
||||
super(modalService, userService, messagingService, passwordRepromptService, true);
|
||||
}
|
||||
|
||||
async ngOnInit() {
|
||||
|
Loading…
Reference in New Issue
Block a user