- 修改 TenantController 自動產生預設網域 ({tenant_id}.{TENANT_DEFAULT_DOMAIN})
- 新增 TenantDatabaseSeeder 自動建立 admin 帳號
- 啟用 SeedDatabase Job 在建立租戶時自動執行 seeder
- 新增 TENANT_DEFAULT_DOMAIN 環境變數支援不同環境
- 補充中央資料庫所需的 migrations
43 lines
1.0 KiB
PHP
43 lines
1.0 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use Illuminate\Database\Seeder;
|
||
use App\Models\User;
|
||
use Spatie\Permission\Models\Role;
|
||
use Spatie\Permission\Models\Permission;
|
||
|
||
/**
|
||
* 租戶資料庫專用 Seeder
|
||
*
|
||
* 建立新租戶時會自動執行此 Seeder,負責:
|
||
* 1. 建立預設的超級管理員帳號
|
||
* 2. 設定權限與角色
|
||
*/
|
||
class TenantDatabaseSeeder extends Seeder
|
||
{
|
||
/**
|
||
* Seed the application's database.
|
||
*/
|
||
public function run(): void
|
||
{
|
||
// 建立預設管理員帳號
|
||
$admin = User::firstOrCreate(
|
||
['username' => 'admin'],
|
||
[
|
||
'name' => '系統管理員',
|
||
'email' => 'admin@example.com',
|
||
'password' => 'password',
|
||
]
|
||
);
|
||
|
||
// 呼叫權限 Seeder 設定權限與角色
|
||
$this->call(PermissionSeeder::class);
|
||
|
||
// 確保 admin 擁有 super-admin 角色
|
||
if (!$admin->hasRole('super-admin')) {
|
||
$admin->assignRole('super-admin');
|
||
}
|
||
}
|
||
}
|