mirror of
https://github.com/bitwarden/browser
synced 2025-12-14 07:13:32 +00:00
[PM-17503] Delete old password-strength component (#15652)
* Removed flag and components. * More cleanup * Removed ChangePasswordComponent. * Removed old EmergencyAccessTakeover * Removed service initialization. * Fixed test failures. * Fixed tests. * Test changes. * Updated comments * Delete old password-strength component A PasswordStrengthV2Component had been created in July 2024 and now all usages of the old component have been replaced. * Re-add canAccessFeature back into app-routing.module. Messed up by merging main. --------- Co-authored-by: Todd Martin <tmartin@bitwarden.com> Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
5e402d9e54
commit
d9480a8dab
@@ -54,7 +54,6 @@ import { UserTypePipe } from "./pipes/user-type.pipe";
|
|||||||
import { EllipsisPipe } from "./platform/pipes/ellipsis.pipe";
|
import { EllipsisPipe } from "./platform/pipes/ellipsis.pipe";
|
||||||
import { FingerprintPipe } from "./platform/pipes/fingerprint.pipe";
|
import { FingerprintPipe } from "./platform/pipes/fingerprint.pipe";
|
||||||
import { I18nPipe } from "./platform/pipes/i18n.pipe";
|
import { I18nPipe } from "./platform/pipes/i18n.pipe";
|
||||||
import { PasswordStrengthComponent } from "./tools/password-strength/password-strength.component";
|
|
||||||
import { IconComponent } from "./vault/components/icon.component";
|
import { IconComponent } from "./vault/components/icon.component";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
@@ -108,7 +107,6 @@ import { IconComponent } from "./vault/components/icon.component";
|
|||||||
TrueFalseValueDirective,
|
TrueFalseValueDirective,
|
||||||
LaunchClickDirective,
|
LaunchClickDirective,
|
||||||
UserNamePipe,
|
UserNamePipe,
|
||||||
PasswordStrengthComponent,
|
|
||||||
UserTypePipe,
|
UserTypePipe,
|
||||||
IfFeatureDirective,
|
IfFeatureDirective,
|
||||||
FingerprintPipe,
|
FingerprintPipe,
|
||||||
@@ -143,7 +141,6 @@ import { IconComponent } from "./vault/components/icon.component";
|
|||||||
CopyClickDirective,
|
CopyClickDirective,
|
||||||
LaunchClickDirective,
|
LaunchClickDirective,
|
||||||
UserNamePipe,
|
UserNamePipe,
|
||||||
PasswordStrengthComponent,
|
|
||||||
UserTypePipe,
|
UserTypePipe,
|
||||||
IfFeatureDirective,
|
IfFeatureDirective,
|
||||||
FingerprintPipe,
|
FingerprintPipe,
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
<div class="progress">
|
|
||||||
<div
|
|
||||||
class="progress-bar {{ color }}"
|
|
||||||
role="progressbar"
|
|
||||||
[ngStyle]="{ width: scoreWidth + '%' }"
|
|
||||||
attr.aria-valuenow="{{ scoreWidth }}"
|
|
||||||
aria-valuemin="0"
|
|
||||||
aria-valuemax="100"
|
|
||||||
>
|
|
||||||
<ng-container *ngIf="showText && text">
|
|
||||||
{{ text }}
|
|
||||||
</ng-container>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
// FIXME: Update this file to be type safe and remove this and next line
|
|
||||||
// @ts-strict-ignore
|
|
||||||
import { Component, EventEmitter, Input, OnChanges, Output } from "@angular/core";
|
|
||||||
|
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
|
||||||
import { PasswordStrengthServiceAbstraction } from "@bitwarden/common/tools/password-strength";
|
|
||||||
|
|
||||||
export interface PasswordColorText {
|
|
||||||
color: string;
|
|
||||||
text: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated July 2024: Use new PasswordStrengthV2Component instead
|
|
||||||
*/
|
|
||||||
@Component({
|
|
||||||
selector: "app-password-strength",
|
|
||||||
templateUrl: "password-strength.component.html",
|
|
||||||
standalone: false,
|
|
||||||
})
|
|
||||||
export class PasswordStrengthComponent implements OnChanges {
|
|
||||||
@Input() showText = false;
|
|
||||||
@Input() email: string;
|
|
||||||
@Input() name: string;
|
|
||||||
@Input() set password(value: string) {
|
|
||||||
this.updatePasswordStrength(value);
|
|
||||||
}
|
|
||||||
@Output() passwordStrengthResult = new EventEmitter<any>();
|
|
||||||
@Output() passwordScoreColor = new EventEmitter<PasswordColorText>();
|
|
||||||
|
|
||||||
masterPasswordScore: number;
|
|
||||||
scoreWidth = 0;
|
|
||||||
color = "bg-danger";
|
|
||||||
text: string;
|
|
||||||
|
|
||||||
private masterPasswordStrengthTimeout: any;
|
|
||||||
|
|
||||||
//used by desktop and browser to display strength text color
|
|
||||||
get masterPasswordScoreColor() {
|
|
||||||
switch (this.masterPasswordScore) {
|
|
||||||
case 4:
|
|
||||||
return "success";
|
|
||||||
case 3:
|
|
||||||
return "primary";
|
|
||||||
case 2:
|
|
||||||
return "warning";
|
|
||||||
default:
|
|
||||||
return "danger";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//used by desktop and browser to display strength text
|
|
||||||
get masterPasswordScoreText() {
|
|
||||||
switch (this.masterPasswordScore) {
|
|
||||||
case 4:
|
|
||||||
return this.i18nService.t("strong");
|
|
||||||
case 3:
|
|
||||||
return this.i18nService.t("good");
|
|
||||||
case 2:
|
|
||||||
return this.i18nService.t("weak");
|
|
||||||
default:
|
|
||||||
return this.masterPasswordScore != null ? this.i18nService.t("weak") : null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
private i18nService: I18nService,
|
|
||||||
private passwordStrengthService: PasswordStrengthServiceAbstraction,
|
|
||||||
) {}
|
|
||||||
|
|
||||||
ngOnChanges(): void {
|
|
||||||
this.masterPasswordStrengthTimeout = setTimeout(() => {
|
|
||||||
this.scoreWidth = this.masterPasswordScore == null ? 0 : (this.masterPasswordScore + 1) * 20;
|
|
||||||
|
|
||||||
switch (this.masterPasswordScore) {
|
|
||||||
case 4:
|
|
||||||
this.color = "bg-success";
|
|
||||||
this.text = this.i18nService.t("strong");
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
this.color = "bg-primary";
|
|
||||||
this.text = this.i18nService.t("good");
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
this.color = "bg-warning";
|
|
||||||
this.text = this.i18nService.t("weak");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
this.color = "bg-danger";
|
|
||||||
this.text = this.masterPasswordScore != null ? this.i18nService.t("weak") : null;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setPasswordScoreText(this.color, this.text);
|
|
||||||
}, 300);
|
|
||||||
}
|
|
||||||
|
|
||||||
updatePasswordStrength(password: string) {
|
|
||||||
const masterPassword = password;
|
|
||||||
|
|
||||||
if (this.masterPasswordStrengthTimeout != null) {
|
|
||||||
clearTimeout(this.masterPasswordStrengthTimeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
const strengthResult = this.passwordStrengthService.getPasswordStrength(
|
|
||||||
masterPassword,
|
|
||||||
this.email,
|
|
||||||
this.name?.trim().toLowerCase().split(" "),
|
|
||||||
);
|
|
||||||
this.passwordStrengthResult.emit(strengthResult);
|
|
||||||
this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;
|
|
||||||
}
|
|
||||||
|
|
||||||
setPasswordScoreText(color: string, text: string) {
|
|
||||||
color = color.slice(3);
|
|
||||||
this.passwordScoreColor.emit({ color: color, text: text });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user