19 lines
1.3 KiB
PHP
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";
|