mirror of
https://github.com/bitwarden/browser
synced 2026-02-06 19:53:59 +00:00
fix(policy-service): Policy Service Update [PM-22723] - Fixes made per suggestions.
This commit is contained in:
@@ -51,10 +51,10 @@ export abstract class PolicyService {
|
||||
) => Observable<MasterPasswordPolicyOptions | undefined>;
|
||||
|
||||
/**
|
||||
* Combines all Master Password policies that are passed in and returns
|
||||
* Combines all Master Password Policies that are passed in and returns
|
||||
* back the strongest combination of all the policies in the form of a
|
||||
* MasterPasswordPolicyOptions.
|
||||
* @param policies
|
||||
* MasterPasswordPolicyOptions. Returns `undefined` if no master password
|
||||
* policies apply to a user.
|
||||
*/
|
||||
abstract combinePoliciesIntoMasterPasswordPolicyOptions(
|
||||
policies: Policy[],
|
||||
|
||||
@@ -654,6 +654,32 @@ describe("PolicyService", () => {
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
|
||||
it("returns undefined when policies are not MasterPassword related", () => {
|
||||
const unrelatedPolicyRequirements = {
|
||||
minComplexity: 3,
|
||||
minLength: 10,
|
||||
requireUpper: true,
|
||||
};
|
||||
const policies = [
|
||||
new Policy(
|
||||
policyData(
|
||||
"1",
|
||||
"org1",
|
||||
PolicyType.MaximumVaultTimeout,
|
||||
true,
|
||||
unrelatedPolicyRequirements,
|
||||
),
|
||||
),
|
||||
new Policy(
|
||||
policyData("2", "org2", PolicyType.DisableSend, true, unrelatedPolicyRequirements),
|
||||
),
|
||||
];
|
||||
|
||||
const result = policyService.combinePoliciesIntoMasterPasswordPolicyOptions(policies);
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
function policyData(
|
||||
|
||||
@@ -234,14 +234,11 @@ export class DefaultPolicyService implements PolicyService {
|
||||
source.minComplexity ?? target.minComplexity,
|
||||
);
|
||||
target.minLength = Math.max(target.minLength, source.minLength ?? target.minLength);
|
||||
target.requireUpper = target.requireUpper || (source.requireUpper ?? target.requireUpper);
|
||||
target.requireLower = target.requireLower || (source.requireLower ?? target.requireLower);
|
||||
target.requireNumbers =
|
||||
target.requireNumbers || (source.requireNumbers ?? target.requireNumbers);
|
||||
target.requireSpecial =
|
||||
target.requireSpecial || (source.requireSpecial ?? target.requireSpecial);
|
||||
target.enforceOnLogin =
|
||||
target.enforceOnLogin || (source.enforceOnLogin ?? target.enforceOnLogin);
|
||||
target.requireUpper = Boolean(target.requireUpper || source.requireUpper);
|
||||
target.requireLower = Boolean(target.requireLower || source.requireLower);
|
||||
target.requireNumbers = Boolean(target.requireNumbers || source.requireNumbers);
|
||||
target.requireSpecial = Boolean(target.requireSpecial || source.requireSpecial);
|
||||
target.enforceOnLogin = Boolean(target.enforceOnLogin || source.enforceOnLogin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user