Browse Source

Merge pull request #20676 from abpframework/issue-passwordGeneratorUpdates

Angular - Random Password Generator Enhancement for Length
pull/20699/head
oykuermann 2 years ago
committed by GitHub
parent
commit
d4be81f520
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 16
      npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts

16
npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts

@ -1,3 +1,7 @@
import { Injector } from '@angular/core';
import { ABP } from '../models';
import { ConfigStateService } from '../services';
export function uuid(a?: any): string { export function uuid(a?: any): string {
return a return a
? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
@ -16,7 +20,11 @@ export function generateHash(value: string): number {
return hashed; return hashed;
} }
export function generatePassword(length = 8) { export function generatePassword(injector?: Injector, length = 8) {
if (injector) {
length = getRequiredPasswordLength(injector);
}
length = Math.min(Math.max(4, length), 128); length = Math.min(Math.max(4, length), 128);
const lowers = 'abcdefghijklmnopqrstuvwxyz'; const lowers = 'abcdefghijklmnopqrstuvwxyz';
@ -39,3 +47,9 @@ export function generatePassword(length = 8) {
return password.sort(() => 0.5 - Math.random()).join(''); return password.sort(() => 0.5 - Math.random()).join('');
} }
function getRequiredPasswordLength(injector: Injector) {
const configState = injector.get(ConfigStateService);
const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');
return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;
}

Loading…
Cancel
Save