Files

19 lines
1.3 KiB
PHP

<?php
if (PHP_SAPI !== 'cli') { http_response_code(404); exit; }
require __DIR__ . '/../bootstrap.php';
$name = trim(readline('Nama depan: '));
$last = trim(readline('Nama belakang: '));
$idkar = trim(readline('ID karyawan: '));
$email = trim(readline('Email admin: '));
if ($name === '' || strlen($name) > 100 || strlen($last) > 100 || strlen($idkar) > 50 || !filter_var($email, FILTER_VALIDATE_EMAIL) || strlen($email) > 190) exit("Nama atau email tidak valid.\n");
echo 'Password admin (minimal 12 karakter, input disembunyikan): ';
$tty = function_exists('shell_exec') ? shell_exec('stty -g 2>/dev/null') : null;
if (!$tty) exit("Jalankan melalui terminal interaktif.\n");
system('stty -echo');
try { $password = rtrim(fgets(STDIN), "\r\n"); } finally { system('stty ' . escapeshellarg(trim($tty))); echo "\n"; }
if (strlen($password) < 12) exit("Password minimal 12 karakter.\n");
db()->query(file_get_contents(__DIR__ . '/../migrations/001_admin.sql'));
if (one("SHOW COLUMNS FROM rec_admin LIKE 'name'")) db()->query(file_get_contents(__DIR__ . '/../migrations/002_admin_identity.sql'));
query('INSERT INTO rec_admin (email,nama_de,nama_be,idkar,password_hash) VALUES (?,?,?,?,?)', 'sssss', [$email, $name, $last, $idkar, password_hash($password, PASSWORD_DEFAULT)]);
echo "Admin berhasil dibuat. Buka /dashboard/login.php.\n";