UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

49 lines (48 loc) 4.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "registerLocalStrategy", { enumerable: true, get: function() { return registerLocalStrategy; } }); const _errors = require("../../../errors"); const _generatePasswordSaltHash = require("./generatePasswordSaltHash"); const registerLocalStrategy = async ({ collection, doc, password, payload, req })=>{ const existingUser = await payload.find({ collection: collection.slug, depth: 0, where: { email: { equals: doc.email } } }); if (existingUser.docs.length > 0) { throw new _errors.ValidationError([ { field: 'email', message: 'A user with the given email is already registered' } ]); } const { hash, salt } = await (0, _generatePasswordSaltHash.generatePasswordSaltHash)({ password }); const sanitizedDoc = { ...doc }; if (sanitizedDoc.password) delete sanitizedDoc.password; return payload.db.create({ collection: collection.slug, data: { ...sanitizedDoc, hash, salt }, req }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3N0cmF0ZWdpZXMvbG9jYWwvcmVnaXN0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4nXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcblxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vLi4vZXJyb3JzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIH0gZnJvbSAnLi9nZW5lcmF0ZVBhc3N3b3JkU2FsdEhhc2gnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHBhc3N3b3JkOiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlckxvY2FsU3RyYXRlZ3kgPSBhc3luYyAoe1xuICBjb2xsZWN0aW9uLFxuICBkb2MsXG4gIHBhc3N3b3JkLFxuICBwYXlsb2FkLFxuICByZXEsXG59OiBBcmdzKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPT4ge1xuICBjb25zdCBleGlzdGluZ1VzZXIgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb24uc2x1ZyxcbiAgICBkZXB0aDogMCxcbiAgICB3aGVyZToge1xuICAgICAgZW1haWw6IHtcbiAgICAgICAgZXF1YWxzOiBkb2MuZW1haWwsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG5cbiAgaWYgKGV4aXN0aW5nVXNlci5kb2NzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgIHsgZmllbGQ6ICdlbWFpbCcsIG1lc3NhZ2U6ICdBIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gZW1haWwgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyB9LFxuICAgIF0pXG4gIH1cblxuICBjb25zdCB7IGhhc2gsIHNhbHQgfSA9IGF3YWl0IGdlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCh7IHBhc3N3b3JkIH0pXG5cbiAgY29uc3Qgc2FuaXRpemVkRG9jID0geyAuLi5kb2MgfVxuICBpZiAoc2FuaXRpemVkRG9jLnBhc3N3b3JkKSBkZWxldGUgc2FuaXRpemVkRG9jLnBhc3N3b3JkXG5cbiAgcmV0dXJuIHBheWxvYWQuZGIuY3JlYXRlKHtcbiAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uLnNsdWcsXG4gICAgZGF0YToge1xuICAgICAgLi4uc2FuaXRpemVkRG9jLFxuICAgICAgaGFzaCxcbiAgICAgIHNhbHQsXG4gICAgfSxcbiAgICByZXEsXG4gIH0pXG59XG4iXSwibmFtZXMiOlsicmVnaXN0ZXJMb2NhbFN0cmF0ZWd5IiwiY29sbGVjdGlvbiIsImRvYyIsInBhc3N3b3JkIiwicGF5bG9hZCIsInJlcSIsImV4aXN0aW5nVXNlciIsImZpbmQiLCJzbHVnIiwiZGVwdGgiLCJ3aGVyZSIsImVtYWlsIiwiZXF1YWxzIiwiZG9jcyIsImxlbmd0aCIsIlZhbGlkYXRpb25FcnJvciIsImZpZWxkIiwibWVzc2FnZSIsImhhc2giLCJzYWx0IiwiZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIiwic2FuaXRpemVkRG9jIiwiZGIiLCJjcmVhdGUiLCJkYXRhIl0sIm1hcHBpbmdzIjoiOzs7OytCQWVhQTs7O2VBQUFBOzs7d0JBWG1COzBDQUNTO0FBVWxDLE1BQU1BLHdCQUF3QixPQUFPLEVBQzFDQyxVQUFVLEVBQ1ZDLEdBQUcsRUFDSEMsUUFBUSxFQUNSQyxPQUFPLEVBQ1BDLEdBQUcsRUFDRTtJQUNMLE1BQU1DLGVBQWUsTUFBTUYsUUFBUUcsSUFBSSxDQUFDO1FBQ3RDTixZQUFZQSxXQUFXTyxJQUFJO1FBQzNCQyxPQUFPO1FBQ1BDLE9BQU87WUFDTEMsT0FBTztnQkFDTEMsUUFBUVYsSUFBSVMsS0FBSztZQUNuQjtRQUNGO0lBQ0Y7SUFFQSxJQUFJTCxhQUFhTyxJQUFJLENBQUNDLE1BQU0sR0FBRyxHQUFHO1FBQ2hDLE1BQU0sSUFBSUMsdUJBQWUsQ0FBQztZQUN4QjtnQkFBRUMsT0FBTztnQkFBU0MsU0FBUztZQUFvRDtTQUNoRjtJQUNIO0lBRUEsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRSxHQUFHLE1BQU1DLElBQUFBLGtEQUF3QixFQUFDO1FBQUVqQjtJQUFTO0lBRWpFLE1BQU1rQixlQUFlO1FBQUUsR0FBR25CLEdBQUc7SUFBQztJQUM5QixJQUFJbUIsYUFBYWxCLFFBQVEsRUFBRSxPQUFPa0IsYUFBYWxCLFFBQVE7SUFFdkQsT0FBT0MsUUFBUWtCLEVBQUUsQ0FBQ0MsTUFBTSxDQUFDO1FBQ3ZCdEIsWUFBWUEsV0FBV08sSUFBSTtRQUMzQmdCLE1BQU07WUFDSixHQUFHSCxZQUFZO1lBQ2ZIO1lBQ0FDO1FBQ0Y7UUFDQWQ7SUFDRjtBQUNGIn0=