UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

49 lines (48 loc) 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "docAccess", { enumerable: true, get: function() { return docAccess; } }); const _commitTransaction = require("../../utilities/commitTransaction"); const _getEntityPolicies = require("../../utilities/getEntityPolicies"); const _initTransaction = require("../../utilities/initTransaction"); const _killTransaction = require("../../utilities/killTransaction"); const allOperations = [ 'create', 'read', 'update', 'delete' ]; async function docAccess(args) { const { id, req, req: { collection: { config } } } = args; const collectionOperations = [ ...allOperations ]; if (config.auth && typeof config.auth.maxLoginAttempts !== 'undefined' && config.auth.maxLoginAttempts !== 0) { collectionOperations.push('unlock'); } if (config.versions) { collectionOperations.push('readVersions'); } try { const shouldCommit = await (0, _initTransaction.initTransaction)(req); const result = await (0, _getEntityPolicies.getEntityPolicies)({ id, entity: config, operations: collectionOperations, req, type: 'collection' }); if (shouldCommit) await (0, _commitTransaction.commitTransaction)(req); return result; } catch (e) { await (0, _killTransaction.killTransaction)(req); throw e; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2RvY0FjY2Vzcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25QZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vYXV0aCdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBbGxPcGVyYXRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgZ2V0RW50aXR5UG9saWNpZXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ2V0RW50aXR5UG9saWNpZXMnXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcblxuY29uc3QgYWxsT3BlcmF0aW9uczogQWxsT3BlcmF0aW9uc1tdID0gWydjcmVhdGUnLCAncmVhZCcsICd1cGRhdGUnLCAnZGVsZXRlJ11cblxudHlwZSBBcmd1bWVudHMgPSB7XG4gIGlkOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9jQWNjZXNzKGFyZ3M6IEFyZ3VtZW50cyk6IFByb21pc2U8Q29sbGVjdGlvblBlcm1pc3Npb24+IHtcbiAgY29uc3Qge1xuICAgIGlkLFxuICAgIHJlcSxcbiAgICByZXE6IHtcbiAgICAgIGNvbGxlY3Rpb246IHsgY29uZmlnIH0sXG4gICAgfSxcbiAgfSA9IGFyZ3NcblxuICBjb25zdCBjb2xsZWN0aW9uT3BlcmF0aW9ucyA9IFsuLi5hbGxPcGVyYXRpb25zXVxuXG4gIGlmIChcbiAgICBjb25maWcuYXV0aCAmJlxuICAgIHR5cGVvZiBjb25maWcuYXV0aC5tYXhMb2dpbkF0dGVtcHRzICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIGNvbmZpZy5hdXRoLm1heExvZ2luQXR0ZW1wdHMgIT09IDBcbiAgKSB7XG4gICAgY29sbGVjdGlvbk9wZXJhdGlvbnMucHVzaCgndW5sb2NrJylcbiAgfVxuXG4gIGlmIChjb25maWcudmVyc2lvbnMpIHtcbiAgICBjb2xsZWN0aW9uT3BlcmF0aW9ucy5wdXNoKCdyZWFkVmVyc2lvbnMnKVxuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24ocmVxKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0RW50aXR5UG9saWNpZXMoe1xuICAgICAgaWQsXG4gICAgICBlbnRpdHk6IGNvbmZpZyxcbiAgICAgIG9wZXJhdGlvbnM6IGNvbGxlY3Rpb25PcGVyYXRpb25zLFxuICAgICAgcmVxLFxuICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgIH0pXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgIHRocm93IGVcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRvY0FjY2VzcyIsImFsbE9wZXJhdGlvbnMiLCJhcmdzIiwiaWQiLCJyZXEiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwiY29sbGVjdGlvbk9wZXJhdGlvbnMiLCJhdXRoIiwibWF4TG9naW5BdHRlbXB0cyIsInB1c2giLCJ2ZXJzaW9ucyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsInJlc3VsdCIsImdldEVudGl0eVBvbGljaWVzIiwiZW50aXR5Iiwib3BlcmF0aW9ucyIsInR5cGUiLCJjb21taXRUcmFuc2FjdGlvbiIsImUiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0JzQkE7OztlQUFBQTs7O21DQVpZO21DQUNBO2lDQUNGO2lDQUNBO0FBRWhDLE1BQU1DLGdCQUFpQztJQUFDO0lBQVU7SUFBUTtJQUFVO0NBQVM7QUFPdEUsZUFBZUQsVUFBVUUsSUFBZTtJQUM3QyxNQUFNLEVBQ0pDLEVBQUUsRUFDRkMsR0FBRyxFQUNIQSxLQUFLLEVBQ0hDLFlBQVksRUFBRUMsTUFBTSxFQUFFLEVBQ3ZCLEVBQ0YsR0FBR0o7SUFFSixNQUFNSyx1QkFBdUI7V0FBSU47S0FBYztJQUUvQyxJQUNFSyxPQUFPRSxJQUFJLElBQ1gsT0FBT0YsT0FBT0UsSUFBSSxDQUFDQyxnQkFBZ0IsS0FBSyxlQUN4Q0gsT0FBT0UsSUFBSSxDQUFDQyxnQkFBZ0IsS0FBSyxHQUNqQztRQUNBRixxQkFBcUJHLElBQUksQ0FBQztJQUM1QjtJQUVBLElBQUlKLE9BQU9LLFFBQVEsRUFBRTtRQUNuQkoscUJBQXFCRyxJQUFJLENBQUM7SUFDNUI7SUFFQSxJQUFJO1FBQ0YsTUFBTUUsZUFBZSxNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDVDtRQUUzQyxNQUFNVSxTQUFTLE1BQU1DLElBQUFBLG9DQUFpQixFQUFDO1lBQ3JDWjtZQUNBYSxRQUFRVjtZQUNSVyxZQUFZVjtZQUNaSDtZQUNBYyxNQUFNO1FBQ1I7UUFFQSxJQUFJTixjQUFjLE1BQU1PLElBQUFBLG9DQUFpQixFQUFDZjtRQUUxQyxPQUFPVTtJQUNULEVBQUUsT0FBT00sR0FBWTtRQUNuQixNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDakI7UUFDdEIsTUFBTWdCO0lBQ1I7QUFDRiJ9