feat: add test user creation script and documentation
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# کاربران تستی
|
||||
|
||||
**پنل ادمین:** https://clinic-pro.ddev.site/admin
|
||||
|
||||
---
|
||||
|
||||
## ادمین
|
||||
|
||||
| فیلد | مقدار |
|
||||
|------|-------|
|
||||
| موبایل | `09120671713` |
|
||||
| پسورد | `admin123` |
|
||||
| نقش | `ROLE_ADMIN` |
|
||||
|
||||
---
|
||||
|
||||
## کاربران Multi-Context
|
||||
|
||||
### کاربر ۱ — دکتر در چند کلینیک
|
||||
|
||||
| فیلد | مقدار |
|
||||
|------|-------|
|
||||
| موبایل | `09100000011` |
|
||||
| پسورد | `Test1234` |
|
||||
| نقش | `ROLE_DOCTOR` |
|
||||
| Contexts | مطب شخصی دکتر آرمان رضایی |
|
||||
| | کلینیک جامع حضرت علی (عضو) |
|
||||
| | بیمارستان ابن سینا (عضو) |
|
||||
|
||||
---
|
||||
|
||||
### کاربر ۲ — صاحب کلینیک
|
||||
|
||||
| فیلد | مقدار |
|
||||
|------|-------|
|
||||
| موبایل | `09100000022` |
|
||||
| پسورد | `Test1234` |
|
||||
| نقش | `ROLE_CLINIC` |
|
||||
| Contexts | کلینیک تست پگاه |
|
||||
| UUID کلینیک | `0730373f-7c0a-4610-8120-d58ecf4a9916` |
|
||||
|
||||
---
|
||||
|
||||
### کاربر ۳ — منشی
|
||||
|
||||
| فیلد | مقدار |
|
||||
|------|-------|
|
||||
| موبایل | `09100000033` |
|
||||
| پسورد | `Test1234` |
|
||||
| نقش | `ROLE_SECRETARY` |
|
||||
| Contexts | مطب دکتر مهناز سلیمانی |
|
||||
|
||||
---
|
||||
|
||||
### کاربر ۴ — دکتر + صاحب کلینیک
|
||||
|
||||
| فیلد | مقدار |
|
||||
|------|-------|
|
||||
| موبایل | `09100000044` |
|
||||
| پسورد | `Test1234` |
|
||||
| نقش | `ROLE_DOCTOR` + `ROLE_CLINIC` |
|
||||
| Contexts | مطب شخصی دکتر سامان علوی |
|
||||
| | کلینیک تخصصی علوی |
|
||||
| UUID کلینیک | `26a1ff95-32aa-4a96-b0fd-03e75e810be9` |
|
||||
|
||||
---
|
||||
|
||||
## ساخت مجدد
|
||||
|
||||
اگر دیتابیس ریست شد، اجرا کن:
|
||||
|
||||
```bash
|
||||
ddev exec php create_test_users.php
|
||||
```
|
||||
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
use App\Kernel;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
(new Dotenv())->bootEnv(__DIR__ . '/.env');
|
||||
$kernel = new Kernel($_SERVER['APP_ENV'], (bool)$_SERVER['APP_DEBUG']);
|
||||
$kernel->boot();
|
||||
$container = $kernel->getContainer();
|
||||
|
||||
$em = $container->get('doctrine')->getManager();
|
||||
$doctorRepo = $em->getRepository(\App\Doctor\Entity\Doctor::class);
|
||||
$clinicRepo = $em->getRepository(\App\Clinic\Entity\Clinic::class);
|
||||
|
||||
$plainPassword = 'Test1234';
|
||||
$passwordHash = password_hash($plainPassword, PASSWORD_BCRYPT, ['cost' => 13]);
|
||||
|
||||
function makeUser(string $mobile, array $roles, $em, string $hash): \App\Auth\Entity\User {
|
||||
$u = new \App\Auth\Entity\User($mobile);
|
||||
$u->setRoles($roles);
|
||||
$u->setPasswordHash($hash);
|
||||
$em->persist($u);
|
||||
return $u;
|
||||
}
|
||||
|
||||
echo "=== ساخت کاربران تستی ===\n\n";
|
||||
|
||||
// ── ۱) دکتر در چند کلینیک ──────────────────────────────────────────
|
||||
$u1 = makeUser('09100000011', ['ROLE_DOCTOR'], $em, $passwordHash);
|
||||
$em->flush();
|
||||
|
||||
$d1 = new \App\Doctor\Entity\Doctor($u1, 'دکتر آرمان رضایی');
|
||||
$d1->setDegree('specialist')->setInfo('متخصص قلب و عروق');
|
||||
$em->persist($d1);
|
||||
$em->flush();
|
||||
|
||||
$clinic1 = $clinicRepo->find(1);
|
||||
$clinic2 = $clinicRepo->find(2);
|
||||
if ($clinic1) $clinic1->getDoctors()->add($d1);
|
||||
if ($clinic2) $clinic2->getDoctors()->add($d1);
|
||||
$em->flush();
|
||||
|
||||
echo "✅ کاربر ۱: دکتر در چند کلینیک\n";
|
||||
echo " موبایل: 09100000011 | پسورد: Test1234\n";
|
||||
echo " نقش: ROLE_DOCTOR\n";
|
||||
echo " contexts: مطب شخصی + " . ($clinic1?->getName() ?? 'کلینیک ۱') . " + " . ($clinic2?->getName() ?? 'کلینیک ۲') . "\n\n";
|
||||
|
||||
// ── ۲) صاحب کلینیک ─────────────────────────────────────────────────
|
||||
$u2 = makeUser('09100000022', ['ROLE_CLINIC'], $em, $passwordHash);
|
||||
$em->flush();
|
||||
|
||||
$c2 = new \App\Clinic\Entity\Clinic($u2);
|
||||
$c2->setName('کلینیک تست پگاه');
|
||||
$em->persist($c2);
|
||||
$em->flush();
|
||||
|
||||
echo "✅ کاربر ۲: صاحب کلینیک\n";
|
||||
echo " موبایل: 09100000022 | پسورد: Test1234\n";
|
||||
echo " نقش: ROLE_CLINIC\n";
|
||||
echo " contexts: کلینیک تست پگاه (uuid=" . $c2->getUuid() . ")\n\n";
|
||||
|
||||
// ── ۳) منشی ────────────────────────────────────────────────────────
|
||||
$u3 = makeUser('09100000033', ['ROLE_SECRETARY'], $em, $passwordHash);
|
||||
$em->flush();
|
||||
|
||||
$doctor182 = $doctorRepo->find(182);
|
||||
if ($doctor182) {
|
||||
$sec = new \App\Secretary\Entity\DoctorSecretary($doctor182, $u3);
|
||||
$sec->setActive(true);
|
||||
$em->persist($sec);
|
||||
$em->flush();
|
||||
echo "✅ کاربر ۳: منشی\n";
|
||||
echo " موبایل: 09100000033 | پسورد: Test1234\n";
|
||||
echo " نقش: ROLE_SECRETARY\n";
|
||||
echo " contexts: مطب " . $doctor182->getName() . "\n\n";
|
||||
} else {
|
||||
echo "⚠️ دکتر ۱۸۲ یافت نشد\n\n";
|
||||
}
|
||||
|
||||
// ── ۴) دکتر + صاحب کلینیک ──────────────────────────────────────────
|
||||
$u4 = makeUser('09100000044', ['ROLE_DOCTOR', 'ROLE_CLINIC'], $em, $passwordHash);
|
||||
$em->flush();
|
||||
|
||||
$d4 = new \App\Doctor\Entity\Doctor($u4, 'دکتر سامان علوی');
|
||||
$d4->setDegree('specialist')->setInfo('متخصص ارتوپدی');
|
||||
$em->persist($d4);
|
||||
|
||||
$c4 = new \App\Clinic\Entity\Clinic($u4);
|
||||
$c4->setName('کلینیک تخصصی علوی');
|
||||
$em->persist($c4);
|
||||
$em->flush();
|
||||
|
||||
echo "✅ کاربر ۴: دکتر + صاحب کلینیک\n";
|
||||
echo " موبایل: 09100000044 | پسورد: Test1234\n";
|
||||
echo " نقش: ROLE_DOCTOR + ROLE_CLINIC\n";
|
||||
echo " contexts: مطب شخصی دکتر سامان + کلینیک تخصصی علوی (uuid=" . $c4->getUuid() . ")\n\n";
|
||||
|
||||
echo "=== تمام ===\n";
|
||||
Reference in New Issue
Block a user