initialize git, basic setup for crm
This commit is contained in:
67
src/db/seeds/admin.seed.js
Normal file
67
src/db/seeds/admin.seed.js
Normal file
@@ -0,0 +1,67 @@
|
||||
import { db } from '../../config/database.js';
|
||||
import { users } from '../schema.js';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { hashPassword, generateTempPassword } from '../../utils/password.js';
|
||||
import { logger } from '../../utils/logger.js';
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
/**
|
||||
* Seed script pre vytvorenie admin účtu
|
||||
*/
|
||||
async function seedAdmin() {
|
||||
try {
|
||||
logger.info('Starting admin user seed...');
|
||||
|
||||
// Skontroluj či admin už existuje
|
||||
const [existingAdmin] = await db
|
||||
.select()
|
||||
.from(users)
|
||||
.where(eq(users.username, 'admin'))
|
||||
.limit(1);
|
||||
|
||||
if (existingAdmin) {
|
||||
logger.warn('Admin user already exists. Skipping seed.');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Vygeneruj temporary password
|
||||
const tempPassword = generateTempPassword(16);
|
||||
|
||||
// Hash temporary password
|
||||
const hashedTempPassword = await hashPassword(tempPassword);
|
||||
|
||||
// Vytvor admin usera
|
||||
const [newAdmin] = await db
|
||||
.insert(users)
|
||||
.values({
|
||||
username: 'admin',
|
||||
tempPassword: hashedTempPassword,
|
||||
role: 'admin',
|
||||
changedPassword: false,
|
||||
firstName: 'System',
|
||||
lastName: 'Administrator',
|
||||
})
|
||||
.returning();
|
||||
|
||||
logger.success('Admin user created successfully!');
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
logger.info(' ADMIN CREDENTIALS');
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
logger.info(` Username: admin`);
|
||||
logger.info(` Temporary Password: ${tempPassword}`);
|
||||
logger.info(` User ID: ${newAdmin.id}`);
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
logger.warn(' ⚠️ IMPORTANT: Save this password securely!');
|
||||
logger.warn(' ⚠️ You will need to change it after first login.');
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
logger.error('Failed to seed admin user', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
seedAdmin();
|
||||
62
src/db/seeds/testuser.seed.js
Normal file
62
src/db/seeds/testuser.seed.js
Normal file
@@ -0,0 +1,62 @@
|
||||
import { db } from '../../config/database.js';
|
||||
import { users } from '../schema.js';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { hashPassword } from '../../utils/password.js';
|
||||
import { logger } from '../../utils/logger.js';
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
/**
|
||||
* Seed script pre vytvorenie test usera
|
||||
*/
|
||||
async function seedTestUser() {
|
||||
try {
|
||||
logger.info('Starting test user seed...');
|
||||
|
||||
// Skontroluj či testuser už existuje
|
||||
const [existingUser] = await db
|
||||
.select()
|
||||
.from(users)
|
||||
.where(eq(users.username, 'testuser'))
|
||||
.limit(1);
|
||||
|
||||
if (existingUser) {
|
||||
logger.warn('Test user already exists. Deleting old one...');
|
||||
await db.delete(users).where(eq(users.username, 'testuser'));
|
||||
}
|
||||
|
||||
const tempPassword = 'testuser123!';
|
||||
const hashedTempPassword = await hashPassword(tempPassword);
|
||||
|
||||
// Vytvor test usera
|
||||
const [newUser] = await db
|
||||
.insert(users)
|
||||
.values({
|
||||
username: 'testuser',
|
||||
tempPassword: hashedTempPassword,
|
||||
role: 'member',
|
||||
changedPassword: false,
|
||||
firstName: 'Test',
|
||||
lastName: 'User',
|
||||
})
|
||||
.returning();
|
||||
|
||||
logger.success('Test user created successfully!');
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
logger.info(' TEST USER CREDENTIALS');
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
logger.info(` Username: testuser`);
|
||||
logger.info(` Temporary Password: ${tempPassword}`);
|
||||
logger.info(` User ID: ${newUser.id}`);
|
||||
logger.info(` Role: ${newUser.role}`);
|
||||
logger.info('═══════════════════════════════════════════════════════');
|
||||
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
logger.error('Failed to seed test user', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
seedTestUser();
|
||||
Reference in New Issue
Block a user