43 lines
1.7 KiB
JavaScript
43 lines
1.7 KiB
JavaScript
/**
|
|
* Migration: Add allow_registration field to tenants table
|
|
* This field controls whether self-registration is allowed for local auth tenants
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
try {
|
|
// Check if tenants table exists first
|
|
const tables = await queryInterface.showAllTables();
|
|
if (!tables.includes('tenants')) {
|
|
console.log('⚠️ Tenants table does not exist yet, skipping allow_registration migration...');
|
|
return;
|
|
}
|
|
|
|
await queryInterface.addColumn('tenants', 'allow_registration', {
|
|
type: Sequelize.BOOLEAN,
|
|
defaultValue: false, // Default to false for security
|
|
allowNull: false,
|
|
comment: 'Whether self-registration is allowed for local auth'
|
|
});
|
|
|
|
// For existing tenants, you might want to enable registration for specific tenants
|
|
// Uncomment the line below to enable registration for all existing tenants (NOT RECOMMENDED for production)
|
|
// await queryInterface.sequelize.query("UPDATE tenants SET allow_registration = true WHERE auth_provider = 'local'");
|
|
|
|
console.log('✅ Added allow_registration field to tenants table');
|
|
console.log('⚠️ Registration is disabled by default for all tenants for security');
|
|
console.log('💡 To enable registration for a tenant, update the allow_registration field to true');
|
|
} catch (error) {
|
|
console.log('⚠️ Migration skipped - tables may not exist yet:', error.message);
|
|
// Don't throw error, just skip this migration if tables don't exist
|
|
}
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.removeColumn('tenants', 'allow_registration');
|
|
console.log('✅ Removed allow_registration field from tenants table');
|
|
}
|
|
};
|