1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-28 17:27:50 +01:00

Update complexity score display (#479)

* Update complexity score

* Simplifying switch statement
This commit is contained in:
Vincent Salucci 2020-03-03 15:37:54 -06:00 committed by GitHub
parent e7e5816ded
commit 305d86f765
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 52 additions and 6 deletions

View File

@ -25,7 +25,7 @@
<p>{{'masterPasswordPolicyInEffect' | i18n}}</p>
<ul>
<li *ngIf="enforcedPolicyOptions?.minComplexity > 0">
{{'policyInEffectMinComplexity' | i18n : enforcedPolicyOptions?.minComplexity.toString()}}
{{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}
</li>
<li *ngIf="enforcedPolicyOptions?.minLength > 0">
{{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}

View File

@ -27,9 +27,9 @@ import { PolicyData } from 'jslib/models/data/policyData';
export class RegisterComponent extends BaseRegisterComponent {
showCreateOrgMessage = false;
showTerms = true;
enforcedPolicyOptions: MasterPasswordPolicyOptions;
private policies: Policy[];
enforcedPolicyOptions: MasterPasswordPolicyOptions;
constructor(authService: AuthService, router: Router,
i18nService: I18nService, cryptoService: CryptoService,
@ -41,6 +41,23 @@ export class RegisterComponent extends BaseRegisterComponent {
this.showTerms = !platformUtilsService.isSelfHost();
}
getPasswordScoreAlertDisplay() {
if (this.enforcedPolicyOptions == null) {
return '';
}
let str: string;
switch (this.enforcedPolicyOptions.minComplexity) {
case 4:
str = this.i18nService.t('strong');
case 3:
str = this.i18nService.t('good');
default:
str = this.i18nService.t('weak');
}
return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';
}
async ngOnInit() {
const queryParamsSub = this.route.queryParams.subscribe((qParams) => {
if (qParams.email != null && qParams.email.indexOf('@') > -1) {

View File

@ -28,8 +28,10 @@
<div class="row">
<div class="col-6 form-group">
<label for="masterPassMinComplexity">{{'minComplexityScore' | i18n}}</label>
<input id="masterPassMinComplexity" class="form-control" type="number"
name="MasterPassMinComplexity" [(ngModel)]="masterPassMinComplexity" min="0" max="4">
<select id="masterPassMinComplexity" name="MasterPassMinComplexity"
[(ngModel)]="masterPassMinComplexity" class="form-control">
<option *ngFor="let o of passwordScores" [ngValue]="o.value">{{o.name}}</option>
</select>
</div>
<div class="col-6 form-group">
<label for="masterPassMinLength">{{'minLength' | i18n}}</label>

View File

@ -33,6 +33,7 @@ export class PolicyEditComponent implements OnInit {
loading = true;
enabled = false;
formPromise: Promise<any>;
passwordScores: any[];
// Master password
@ -56,7 +57,16 @@ export class PolicyEditComponent implements OnInit {
private policy: PolicyResponse;
constructor(private apiService: ApiService, private i18nService: I18nService,
private analytics: Angulartics2, private toasterService: ToasterService) { }
private analytics: Angulartics2, private toasterService: ToasterService) {
this.passwordScores = [
{ name: '', value: null },
{ name: i18nService.t('weak') + ' (0)', value: 0 },
{ name: i18nService.t('weak') + ' (1)', value: 1 },
{ name: i18nService.t('weak') + ' (2)', value: 2 },
{ name: i18nService.t('good') + ' (3)', value: 3 },
{ name: i18nService.t('strong') + ' (4)', value: 4 },
];
}
async ngOnInit() {
await this.load();

View File

@ -3,7 +3,7 @@
<p>{{'masterPasswordPolicyInEffect' | i18n}}</p>
<ul>
<li *ngIf="enforcedPolicyOptions?.minComplexity > 0">
{{'policyInEffectMinComplexity' | i18n : enforcedPolicyOptions?.minComplexity.toString()}}
{{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}
</li>
<li *ngIf="enforcedPolicyOptions?.minLength > 0">
{{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}

View File

@ -56,6 +56,23 @@ export class ChangePasswordComponent implements OnInit {
this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions();
}
getPasswordScoreAlertDisplay() {
if (this.enforcedPolicyOptions == null) {
return '';
}
let str: string;
switch (this.enforcedPolicyOptions.minComplexity) {
case 4:
str = this.i18nService.t('strong');
case 3:
str = this.i18nService.t('good');
default:
str = this.i18nService.t('weak');
}
return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';
}
async submit() {
const hasEncKey = await this.cryptoService.hasEncKey();
if (!hasEncKey) {