Files
SoonDesign/docker/php/seed-dev-admin.php
T
24kycj 88c6ce8ccc 重构 monorepo 并完善网页端订阅与首页体验
- 迁移为 frontend-web、frontend-electron、backend-web 与 docker 部署结构
- 网页端:订阅门禁二次弹窗、套餐/支付组件化、顶栏分组对齐
- 首页:最近文件与模板库布局优化,缩略图对齐,下载与删除操作
- 新增管理后台、支付与云端文件 API,更新 README 与项目规范

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 18:17:39 +08:00

45 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
$host = getenv('SOON_DB_HOST') ?: 'mysql';
$port = (int)(getenv('SOON_DB_PORT') ?: 3306);
$user = getenv('SOON_DB_USER') ?: 'soondesign';
$pass = getenv('SOON_DB_PASS') ?: 'soondesign';
$db = getenv('SOON_DB_NAME') ?: 'soondesign';
$email = getenv('SOON_DEV_ADMIN_EMAIL') ?: 'admin@local.test';
$plain = getenv('SOON_DEV_ADMIN_PASS') ?: 'admin123';
try {
$pdo = new PDO(
sprintf('mysql:host=%s;port=%d;dbname=%s;charset=utf8mb4', $host, $port, $db),
$user,
$pass,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
} catch (Throwable $e) {
fwrite(STDERR, 'seed-dev-admin: ' . $e->getMessage() . PHP_EOL);
exit(1);
}
$stmt = $pdo->prepare('SELECT id FROM users WHERE email = :email LIMIT 1');
$stmt->execute(['email' => $email]);
if ($stmt->fetchColumn()) {
exit(0);
}
$hash = password_hash($plain, PASSWORD_BCRYPT);
$ins = $pdo->prepare(
'INSERT INTO users (email, password_hash, role, admin_level, status, created_at) '
. 'VALUES (:email, :hash, :role, :level, :status, :created_at)'
);
$ins->execute([
'email' => $email,
'hash' => $hash,
'role' => 'admin',
'level' => 'full',
'status' => 'active',
'created_at' => date('Y-m-d H:i:s'),
]);
fwrite(STDOUT, "seed-dev-admin: created {$email}" . PHP_EOL);