UNPKG

@openinc/parse-server-opendash

Version:
47 lines (46 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.init = init; const __1 = require(".."); const types_1 = require("../types"); async function init() { (0, __1.beforeSaveHook)(types_1.BDE_Page, async (request) => { const { object, original, user } = request; request.context.dirtyKeys = object.dirtyKeys(); const query = new Parse.Query(types_1.BDE_Form).equalTo("entries", object.id // Fix Parse SDK type error ); const affectedForms = await query.find({ useMasterKey: true }); const aclCandidates = {}; affectedForms.forEach((form) => { const formAcl = form.getACL()?.toJSON(); const keys = Object.keys(formAcl); for (const userOrRole of keys) { if (!aclCandidates[userOrRole]) { aclCandidates[userOrRole] = { read: false, write: false }; } aclCandidates[userOrRole].read = formAcl[userOrRole].read || aclCandidates[userOrRole].read; aclCandidates[userOrRole].write = formAcl[userOrRole].write || aclCandidates[userOrRole].write; } const newAcl = new Parse.ACL(aclCandidates); object.setACL(newAcl); }); }); (0, __1.afterSaveHook)(types_1.BDE_Page, async (request) => { const { object, original, user } = request; const query = new Parse.Query(types_1.BDE_Form).equalTo("entries", object.id // Fix Parse SDK type error ); const affectedForms = await query.find({ useMasterKey: true }); const dirtyKeys = request.context.dirtyKeys; if (dirtyKeys.length > 0 && dirtyKeys[0] !== "acl") await Parse.Object.saveAll(affectedForms, { useMasterKey: true }); }); (0, __1.afterDeleteHook)(types_1.BDE_Page, async (request) => { const { object, original, user } = request; const query = new Parse.Query(types_1.BDE_Form).equalTo("entries", object.id // Fix Parse SDK type error ); const affectedForms = await query.find({ useMasterKey: true }); await Parse.Object.saveAll(affectedForms, { useMasterKey: true }); }); }