EventBuzz_Backend/scripts/backfill-form-acl.js

32 lines
917 B
JavaScript

/**
* 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);
});