Files
THE-TIP-TOP/backend/src/scripts/createAdmin.js
Andil 570f5d44f5
All checks were successful
Tests / Backend - Tests skipped: 7, passed: 27
Backend Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 60.55% (333/550) * Lines of Code: 550 #### Quality Gates Summary No active quality gates.
Tests / Frontend - Lint, Tests et Build passed: 45
Frontend Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 86.14% (230/267) * Lines of Code: 267 #### Quality Gates Summary No active quality gates.
THE-TIP-TOP-MULTIBRANCH/pipeline/head This commit looks good
security: remove hardcoded admin credentials
2026-08-28 09:00:51 +00:00

46 lines
1.1 KiB
JavaScript

require('dotenv').config()
const bcrypt = require('bcrypt')
const prisma = require('../config/prisma')
async function createAdmin() {
const email = process.env.ADMIN_EMAIL
const password = process.env.ADMIN_PASSWORD
if (!email || !password) {
throw new Error('ADMIN_EMAIL et ADMIN_PASSWORD doivent être définis')
}
const existing = await prisma.user.findUnique({ where: { email } })
if (existing) {
await prisma.user.update({
where: { email },
data: { isEmailVerified: true, role: 'ADMIN' },
})
console.log('Admin mis à jour :', email)
return
}
const hashed = await bcrypt.hash(password, 10)
await prisma.user.create({
data: {
firstname: 'Admin',
lastname: 'TipTop',
email,
password: hashed,
role: 'ADMIN',
isEmailVerified: true,
},
})
console.log('Admin créé avec succès')
console.log(' Email :', email)
console.log(' Mot de passe:', password)
}
createAdmin()
.catch((e) => { console.error('Erreur :', e.message); process.exit(1) })
.finally(() => prisma.$disconnect())