-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathverify-sysadmin.js
More file actions
61 lines (49 loc) · 1.79 KB
/
verify-sysadmin.js
File metadata and controls
61 lines (49 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const { neon } = require('@neondatabase/serverless');
const bcrypt = require('bcryptjs');
if (!process.env.NEON_DATABASE_URL) {
console.error('❌ Error: NEON_DATABASE_URL environment variable is not set');
console.error('Please set NEON_DATABASE_URL in your .env file');
process.exit(1);
}
const sql = neon(process.env.NEON_DATABASE_URL);
async function verifySysadmin() {
try {
// Check if user exists
const result = await sql`
SELECT id, username, role, password, email, created_at
FROM users
WHERE username = 'sysadmin'
`;
if (result.length === 0) {
console.log('❌ User "sysadmin" not found in database');
return;
}
console.log('✅ User found:');
console.log('ID:', result[0].id);
console.log('Username:', result[0].username);
console.log('Role:', result[0].role);
console.log('Email:', result[0].email);
console.log('Created:', result[0].created_at);
console.log('\nStored password hash:', result[0].password);
// Test password
const testPassword = '@sysadmin123';
const isValid = await bcrypt.compare(testPassword, result[0].password);
console.log('\n🔐 Password verification:');
console.log('Testing password:', testPassword);
console.log('Match:', isValid ? '✅ YES' : '❌ NO');
if (!isValid) {
console.log('\n⚠️ Password does not match. Updating to correct hash...');
const newHash = await bcrypt.hash(testPassword, 10);
console.log('New hash:', newHash);
await sql`
UPDATE users
SET password = ${newHash}
WHERE username = 'sysadmin'
`;
console.log('✅ Password updated successfully!');
}
} catch (error) {
console.error('❌ Error:', error.message);
}
}
verifySysadmin();