52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
const Database = require('better-sqlite3');
|
|
const path = require('path');
|
|
const bcrypt = require('bcryptjs');
|
|
|
|
const dbPath = path.join(__dirname, '../data/fitai.db');
|
|
const db = new Database(dbPath);
|
|
|
|
async function seedSuperAdmin() {
|
|
const email = 'taratur@gmail.com';
|
|
const password = 'password123';
|
|
const firstName = 'Super';
|
|
const lastName = 'Admin';
|
|
|
|
// Hash password
|
|
const hashedPassword = await bcrypt.hash(password, 12);
|
|
|
|
const id = 'user_superadmin_' + Math.random().toString(36).substr(2, 9);
|
|
const now = new Date().toISOString();
|
|
|
|
try {
|
|
console.log('Creating Super Admin...');
|
|
|
|
// Check if exists
|
|
const existing = db.prepare('SELECT * FROM users WHERE email = ?').get(email);
|
|
if (existing) {
|
|
console.log('Super Admin already exists. Updating role...');
|
|
db.prepare('UPDATE users SET role = "superAdmin" WHERE email = ?').run(email);
|
|
console.log('Role updated.');
|
|
return;
|
|
}
|
|
|
|
db.prepare(`
|
|
INSERT INTO users (id, email, firstName, lastName, password, role, createdAt, updatedAt)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
`).run(id, email, firstName, lastName, hashedPassword, 'superAdmin', now, now);
|
|
|
|
console.log(`Super Admin created successfully.`);
|
|
console.log(`Email: ${email}`);
|
|
console.log(`Password: ${password}`);
|
|
console.log(`ID: ${id}`);
|
|
|
|
console.log('\nIMPORTANT: You must also create this user in Clerk manually or sign up with this email to link the accounts if you want to log in as this user.');
|
|
|
|
} catch (error) {
|
|
console.error('Error creating Super Admin:', error);
|
|
} finally {
|
|
db.close();
|
|
}
|
|
}
|
|
|
|
seedSuperAdmin();
|