32 lines
917 B
JavaScript
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);
|
|
});
|