UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

45 lines (44 loc) 4.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "incrementLoginAttempts", { enumerable: true, get: function() { return incrementLoginAttempts; } }); const incrementLoginAttempts = async ({ collection, doc, payload, req })=>{ const { auth: { lockTime, maxLoginAttempts } } = collection; if ('lockUntil' in doc && typeof doc.lockUntil === 'string') { const lockUntil = new Date(doc.lockUntil).getTime(); // Expired lock, restart count at 1 if (lockUntil < Date.now()) { await payload.update({ id: doc.id, collection: collection.slug, data: { lockUntil: null, loginAttempts: 1 }, req }); } return; } const data = { loginAttempts: Number(doc.loginAttempts) + 1 }; // Lock the account if at max attempts and not already locked if (typeof doc.loginAttempts === 'number' && doc.loginAttempts + 1 >= maxLoginAttempts) { const lockUntil = new Date(Date.now() + lockTime); data.lockUntil = lockUntil; } await payload.update({ id: doc.id, collection: collection.slug, data, req }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3N0cmF0ZWdpZXMvbG9jYWwvaW5jcmVtZW50TG9naW5BdHRlbXB0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi8uLi8uLidcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZywgVHlwZVdpdGhJRCB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZG9jOiBUeXBlV2l0aElEICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgcGF5bG9hZDogUGF5bG9hZFxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59XG5cbmV4cG9ydCBjb25zdCBpbmNyZW1lbnRMb2dpbkF0dGVtcHRzID0gYXN5bmMgKHtcbiAgY29sbGVjdGlvbixcbiAgZG9jLFxuICBwYXlsb2FkLFxuICByZXEsXG59OiBBcmdzKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBhdXRoOiB7IGxvY2tUaW1lLCBtYXhMb2dpbkF0dGVtcHRzIH0sXG4gIH0gPSBjb2xsZWN0aW9uXG5cbiAgaWYgKCdsb2NrVW50aWwnIGluIGRvYyAmJiB0eXBlb2YgZG9jLmxvY2tVbnRpbCA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBsb2NrVW50aWwgPSBuZXcgRGF0ZShkb2MubG9ja1VudGlsKS5nZXRUaW1lKClcblxuICAgIC8vIEV4cGlyZWQgbG9jaywgcmVzdGFydCBjb3VudCBhdCAxXG4gICAgaWYgKGxvY2tVbnRpbCA8IERhdGUubm93KCkpIHtcbiAgICAgIGF3YWl0IHBheWxvYWQudXBkYXRlKHtcbiAgICAgICAgaWQ6IGRvYy5pZCxcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbi5zbHVnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbG9ja1VudGlsOiBudWxsLFxuICAgICAgICAgIGxvZ2luQXR0ZW1wdHM6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBsb2dpbkF0dGVtcHRzOiBOdW1iZXIoZG9jLmxvZ2luQXR0ZW1wdHMpICsgMSxcbiAgfVxuXG4gIC8vIExvY2sgdGhlIGFjY291bnQgaWYgYXQgbWF4IGF0dGVtcHRzIGFuZCBub3QgYWxyZWFkeSBsb2NrZWRcbiAgaWYgKHR5cGVvZiBkb2MubG9naW5BdHRlbXB0cyA9PT0gJ251bWJlcicgJiYgZG9jLmxvZ2luQXR0ZW1wdHMgKyAxID49IG1heExvZ2luQXR0ZW1wdHMpIHtcbiAgICBjb25zdCBsb2NrVW50aWwgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgbG9ja1RpbWUpXG4gICAgZGF0YS5sb2NrVW50aWwgPSBsb2NrVW50aWxcbiAgfVxuXG4gIGF3YWl0IHBheWxvYWQudXBkYXRlKHtcbiAgICBpZDogZG9jLmlkLFxuICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb24uc2x1ZyxcbiAgICBkYXRhLFxuICAgIHJlcSxcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJpbmNyZW1lbnRMb2dpbkF0dGVtcHRzIiwiY29sbGVjdGlvbiIsImRvYyIsInBheWxvYWQiLCJyZXEiLCJhdXRoIiwibG9ja1RpbWUiLCJtYXhMb2dpbkF0dGVtcHRzIiwibG9ja1VudGlsIiwiRGF0ZSIsImdldFRpbWUiLCJub3ciLCJ1cGRhdGUiLCJpZCIsInNsdWciLCJkYXRhIiwibG9naW5BdHRlbXB0cyIsIk51bWJlciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFXYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQXlCLE9BQU8sRUFDM0NDLFVBQVUsRUFDVkMsR0FBRyxFQUNIQyxPQUFPLEVBQ1BDLEdBQUcsRUFDRTtJQUNMLE1BQU0sRUFDSkMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLGdCQUFnQixFQUFFLEVBQ3JDLEdBQUdOO0lBRUosSUFBSSxlQUFlQyxPQUFPLE9BQU9BLElBQUlNLFNBQVMsS0FBSyxVQUFVO1FBQzNELE1BQU1BLFlBQVksSUFBSUMsS0FBS1AsSUFBSU0sU0FBUyxFQUFFRSxPQUFPO1FBRWpELG1DQUFtQztRQUNuQyxJQUFJRixZQUFZQyxLQUFLRSxHQUFHLElBQUk7WUFDMUIsTUFBTVIsUUFBUVMsTUFBTSxDQUFDO2dCQUNuQkMsSUFBSVgsSUFBSVcsRUFBRTtnQkFDVlosWUFBWUEsV0FBV2EsSUFBSTtnQkFDM0JDLE1BQU07b0JBQ0pQLFdBQVc7b0JBQ1hRLGVBQWU7Z0JBQ2pCO2dCQUNBWjtZQUNGO1FBQ0Y7UUFFQTtJQUNGO0lBRUEsTUFBTVcsT0FBZ0M7UUFDcENDLGVBQWVDLE9BQU9mLElBQUljLGFBQWEsSUFBSTtJQUM3QztJQUVBLDZEQUE2RDtJQUM3RCxJQUFJLE9BQU9kLElBQUljLGFBQWEsS0FBSyxZQUFZZCxJQUFJYyxhQUFhLEdBQUcsS0FBS1Qsa0JBQWtCO1FBQ3RGLE1BQU1DLFlBQVksSUFBSUMsS0FBS0EsS0FBS0UsR0FBRyxLQUFLTDtRQUN4Q1MsS0FBS1AsU0FBUyxHQUFHQTtJQUNuQjtJQUVBLE1BQU1MLFFBQVFTLE1BQU0sQ0FBQztRQUNuQkMsSUFBSVgsSUFBSVcsRUFBRTtRQUNWWixZQUFZQSxXQUFXYSxJQUFJO1FBQzNCQztRQUNBWDtJQUNGO0FBQ0YifQ==