feat: 租戶建立自動產生預設網域與管理員帳號
- 修改 TenantController 自動產生預設網域 ({tenant_id}.{TENANT_DEFAULT_DOMAIN})
- 新增 TenantDatabaseSeeder 自動建立 admin 帳號
- 啟用 SeedDatabase Job 在建立租戶時自動執行 seeder
- 新增 TENANT_DEFAULT_DOMAIN 環境變數支援不同環境
- 補充中央資料庫所需的 migrations
This commit is contained in:
42
database/seeders/TenantDatabaseSeeder.php
Normal file
42
database/seeders/TenantDatabaseSeeder.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user