Adds password expiry support to password policy (#3068)
* Adding support for password expiry policy * Renamed daysBeforeExpiry -> maxPasswordAge
This commit is contained in:
committed by
Diwakar Cherukumilli
parent
11c6170ed1
commit
edb7b70ced
@@ -70,6 +70,10 @@ const transformKeyValueForUpdate = (className, restKey, restValue, parseFormatSc
|
||||
key = '_perishable_token_expires_at';
|
||||
timeField = true;
|
||||
break;
|
||||
case '_password_changed_at':
|
||||
key = '_password_changed_at';
|
||||
timeField = true;
|
||||
break;
|
||||
case '_rperm':
|
||||
case '_wperm':
|
||||
return {key: key, value: restValue};
|
||||
@@ -180,6 +184,11 @@ function transformQueryKeyValue(className, key, value, schema) {
|
||||
return { key: '_perishable_token_expires_at', value: valueAsDate(value) }
|
||||
}
|
||||
break;
|
||||
case '_password_changed_at':
|
||||
if (valueAsDate(value)) {
|
||||
return { key: '_password_changed_at', value: valueAsDate(value) }
|
||||
}
|
||||
break;
|
||||
case '_rperm':
|
||||
case '_wperm':
|
||||
case '_perishable_token':
|
||||
@@ -263,6 +272,10 @@ const parseObjectKeyValueToMongoObjectKeyValue = (restKey, restValue, schema) =>
|
||||
transformedValue = transformTopLevelAtom(restValue);
|
||||
coercedToDate = typeof transformedValue === 'string' ? new Date(transformedValue) : transformedValue
|
||||
return { key: '_perishable_token_expires_at', value: coercedToDate };
|
||||
case '_password_changed_at':
|
||||
transformedValue = transformTopLevelAtom(restValue);
|
||||
coercedToDate = typeof transformedValue === 'string' ? new Date(transformedValue) : transformedValue
|
||||
return { key: '_password_changed_at', value: coercedToDate };
|
||||
case '_failed_login_count':
|
||||
case '_rperm':
|
||||
case '_wperm':
|
||||
@@ -768,6 +781,7 @@ const mongoObjectToParseObject = (className, mongoObject, schema) => {
|
||||
case '_email_verify_token':
|
||||
case '_perishable_token':
|
||||
case '_perishable_token_expires_at':
|
||||
case '_password_changed_at':
|
||||
case '_tombstone':
|
||||
case '_email_verify_token_expires_at':
|
||||
case '_account_lockout_expires_at':
|
||||
|
||||
@@ -467,6 +467,7 @@ export class PostgresStorageAdapter {
|
||||
fields._failed_login_count = {type: 'Number'};
|
||||
fields._perishable_token = {type: 'String'};
|
||||
fields._perishable_token_expires_at = {type: 'Date'};
|
||||
fields._password_changed_at = {type: 'Date'};
|
||||
}
|
||||
let index = 2;
|
||||
let relations = [];
|
||||
@@ -693,7 +694,8 @@ export class PostgresStorageAdapter {
|
||||
}
|
||||
|
||||
if (fieldName === '_account_lockout_expires_at'||
|
||||
fieldName === '_perishable_token_expires_at') {
|
||||
fieldName === '_perishable_token_expires_at'||
|
||||
fieldName === '_password_changed_at') {
|
||||
if (object[fieldName]) {
|
||||
valuesArray.push(object[fieldName].iso);
|
||||
} else {
|
||||
@@ -1075,7 +1077,9 @@ export class PostgresStorageAdapter {
|
||||
if (object._perishable_token_expires_at) {
|
||||
object._perishable_token_expires_at = { __type: 'Date', iso: object._perishable_token_expires_at.toISOString() };
|
||||
}
|
||||
|
||||
if (object._password_changed_at) {
|
||||
object._password_changed_at = { __type: 'Date', iso: object._password_changed_at.toISOString() };
|
||||
}
|
||||
|
||||
for (let fieldName in object) {
|
||||
if (object[fieldName] === null) {
|
||||
|
||||
Reference in New Issue
Block a user