diff --git a/apps/web/src/app/admin-console/organizations/policies/password-generator.component.html b/apps/web/src/app/admin-console/organizations/policies/password-generator.component.html
index a31679ce484..fcf03d27acc 100644
--- a/apps/web/src/app/admin-console/organizations/policies/password-generator.component.html
+++ b/apps/web/src/app/admin-console/organizations/policies/password-generator.component.html
@@ -23,34 +23,52 @@
{{ "minLength" | i18n }}
-
+
{{ "minNumbers" | i18n }}
-
+
{{ "minSpecial" | i18n }}
-
+
- A-Z
+ {{ "uppercaseLabel" | i18n }}
- a-z
+ {{ "lowercaseLabel" | i18n }}
- 0-9
+ {{ "numbersLabel" | i18n }}
- !@#$%^&*
+ {{ "specialCharactersLabel" | i18n }}
@@ -60,7 +78,13 @@
{{ "minimumNumberOfWords" | i18n }}
-
+
diff --git a/apps/web/src/app/admin-console/organizations/policies/password-generator.component.ts b/apps/web/src/app/admin-console/organizations/policies/password-generator.component.ts
index 9876876b295..818a0853ad3 100644
--- a/apps/web/src/app/admin-console/organizations/policies/password-generator.component.ts
+++ b/apps/web/src/app/admin-console/organizations/policies/password-generator.component.ts
@@ -21,39 +21,29 @@ export class PasswordGeneratorPolicy extends BasePolicy {
templateUrl: "password-generator.component.html",
})
export class PasswordGeneratorPolicyComponent extends BasePolicyComponent {
+ // these properties forward the application default settings to the UI
+ // for HTML attribute bindings
+ protected readonly minLengthMin = Generators.password.settings.constraints.length.min;
+ protected readonly minLengthMax = Generators.password.settings.constraints.length.max;
+ protected readonly minNumbersMin = Generators.password.settings.constraints.minNumber.min;
+ protected readonly minNumbersMax = Generators.password.settings.constraints.minNumber.max;
+ protected readonly minSpecialMin = Generators.password.settings.constraints.minSpecial.min;
+ protected readonly minSpecialMax = Generators.password.settings.constraints.minSpecial.max;
+ protected readonly minNumberWordsMin = Generators.passphrase.settings.constraints.numWords.min;
+ protected readonly minNumberWordsMax = Generators.passphrase.settings.constraints.numWords.max;
+
data = this.formBuilder.group({
overridePasswordType: [null],
- minLength: [
- null,
- [
- Validators.min(Generators.password.settings.constraints.length.min),
- Validators.max(Generators.password.settings.constraints.length.max),
- ],
- ],
+ minLength: [null, [Validators.min(this.minLengthMin), Validators.max(this.minLengthMax)]],
useUpper: [null],
useLower: [null],
useNumbers: [null],
useSpecial: [null],
- minNumbers: [
- null,
- [
- Validators.min(Generators.password.settings.constraints.minNumber.min),
- Validators.max(Generators.password.settings.constraints.minNumber.max),
- ],
- ],
- minSpecial: [
- null,
- [
- Validators.min(Generators.password.settings.constraints.minSpecial.min),
- Validators.max(Generators.password.settings.constraints.minSpecial.max),
- ],
- ],
+ minNumbers: [null, [Validators.min(this.minNumbersMin), Validators.max(this.minNumbersMax)]],
+ minSpecial: [null, [Validators.min(this.minSpecialMin), Validators.max(this.minSpecialMax)]],
minNumberWords: [
null,
- [
- Validators.min(Generators.passphrase.settings.constraints.numWords.min),
- Validators.max(Generators.passphrase.settings.constraints.numWords.max),
- ],
+ [Validators.min(this.minNumberWordsMin), Validators.max(this.minNumberWordsMax)],
],
capitalize: [null],
includeNumber: [null],