57 lines
2.0 KiB
PHP
57 lines
2.0 KiB
PHP
<?php
|
|
// Script para inicializar la base de datos y crear el Super Administrador
|
|
$dbDir = __DIR__ . '/database';
|
|
if (!is_dir($dbDir)) {
|
|
mkdir($dbDir, 0777, true);
|
|
}
|
|
$uploadsDir = __DIR__ . '/uploads';
|
|
if (!is_dir($uploadsDir)) {
|
|
mkdir($uploadsDir, 0777, true);
|
|
}
|
|
|
|
require_once 'config/database.php';
|
|
|
|
try {
|
|
$queries = [
|
|
"CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
username TEXT UNIQUE NOT NULL,
|
|
password TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
role TEXT NOT NULL CHECK(role IN ('superadmin', 'admin', 'supervisor', 'user')),
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
)",
|
|
"CREATE TABLE IF NOT EXISTS documents (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
reference_number TEXT NOT NULL,
|
|
title TEXT NOT NULL,
|
|
description TEXT,
|
|
type TEXT NOT NULL CHECK(type IN ('entrada', 'salida', 'archivo_interno')),
|
|
category TEXT,
|
|
file_path TEXT NOT NULL,
|
|
uploaded_by INTEGER,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY(uploaded_by) REFERENCES users(id)
|
|
)"
|
|
];
|
|
|
|
foreach ($queries as $query) {
|
|
$db->exec($query);
|
|
}
|
|
|
|
// Crear Super Administrador por defecto si no existe
|
|
$stmt = $db->prepare("SELECT COUNT(*) FROM users WHERE username = 'superadmin'");
|
|
$stmt->execute();
|
|
if ($stmt->fetchColumn() == 0) {
|
|
$password = password_hash('superadmin123', PASSWORD_DEFAULT);
|
|
$stmt = $db->prepare("INSERT INTO users (username, password, name, role) VALUES ('superadmin', :password, 'Super Administrador Principal', 'superadmin')");
|
|
$stmt->execute(['password' => $password]);
|
|
echo "Usuario superadmin creado con éxito. Contraseña: superadmin123\n";
|
|
}
|
|
|
|
echo "Base de datos inicializada correctamente.\n";
|
|
} catch (PDOException $e) {
|
|
die("Error inicializando la base de datos: " . $e->getMessage());
|
|
}
|
|
?>
|