/** * Backfill Form.createdBy and defaultVisibility for ACL migration. * Run: cd backend && npm run backfill:form-acl */ const path = require('path'); require('dotenv').config({ path: path.join(__dirname, '..', '.env') }); const mongoose = require('mongoose'); const Form = require(path.join(__dirname, '..', 'src', 'models', 'Form')); async function run() { const uri = process.env.MONGODB_URI; if (!uri) { console.error('MONGODB_URI is not set'); process.exit(1); } await mongoose.connect(uri); const r = await Form.updateMany( { defaultVisibility: { $exists: false } }, { $set: { defaultVisibility: 'org' } }, ); console.log(`Set defaultVisibility=org on ${r.modifiedCount} form(s).`); console.log('Forms without createdBy remain null (creator bypass skipped for those).'); await mongoose.disconnect(); } run().catch((err) => { console.error(err); process.exit(1); });