72 Zeilen
2.1 KiB
JavaScript
72 Zeilen
2.1 KiB
JavaScript
const Database = require('better-sqlite3');
|
|
const bcryptjs = require('bcryptjs');
|
|
const CryptoJS = require('crypto-js');
|
|
const crypto = require('crypto');
|
|
const path = require('path');
|
|
|
|
const FIELD_ENCRYPTION_KEY = process.env.FIELD_ENCRYPTION_KEY || 'dev_field_key_change_in_production_32chars_min!';
|
|
|
|
function encrypt(text) {
|
|
if (!text) return null;
|
|
try {
|
|
return CryptoJS.AES.encrypt(text, FIELD_ENCRYPTION_KEY).toString();
|
|
} catch (error) {
|
|
console.error('Encryption error:', error);
|
|
return text;
|
|
}
|
|
}
|
|
|
|
function hashEmail(email) {
|
|
if (!email) return null;
|
|
return crypto.createHash('sha256').update(email.toLowerCase()).digest('hex');
|
|
}
|
|
|
|
async function createTestUser() {
|
|
const dbPath = path.join(__dirname, 'skillmate.dev.db');
|
|
console.log(`Opening database at: ${dbPath}`);
|
|
const db = new Database(dbPath);
|
|
|
|
try {
|
|
console.log('\n=== Creating Test User ===\n');
|
|
|
|
const email = 'hendrik.gebhardt@polizei.nrw.de';
|
|
const hashedPassword = await bcryptjs.hash('test123', 10);
|
|
const encryptedEmail = encrypt(email);
|
|
const emailHash = hashEmail(email);
|
|
const userId = 'user-' + Date.now();
|
|
|
|
db.prepare(`
|
|
INSERT INTO users (id, username, email, email_hash, password, role, is_active, created_at, updated_at)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
`).run(
|
|
userId,
|
|
'hendrik.gebhardt',
|
|
encryptedEmail,
|
|
emailHash,
|
|
hashedPassword,
|
|
'user',
|
|
1,
|
|
new Date().toISOString(),
|
|
new Date().toISOString()
|
|
);
|
|
|
|
console.log('✓ Test user created successfully!');
|
|
console.log('Email:', email);
|
|
console.log('Username: hendrik.gebhardt');
|
|
console.log('Password: test123');
|
|
console.log('Role: user');
|
|
|
|
// Show all users
|
|
const users = db.prepare('SELECT id, username, role, is_active FROM users').all();
|
|
console.log('\nAll users in database:');
|
|
users.forEach(user => console.log(' -', user));
|
|
|
|
} catch (error) {
|
|
console.error('Error creating test user:', error);
|
|
process.exit(1);
|
|
} finally {
|
|
db.close();
|
|
}
|
|
}
|
|
|
|
createTestUser(); |