feat: refactor super admin to use is_super_admin flag and enhance site deletion logic
- Changed super admin detection from role-based to `is_super_admin` flag in AdminUser model
- Added `requireDefaultAdminSiteId()` method to throw validation error when no integration site exists
- Enhanced site deletion to migrate platform role bindings to fallback site and auto-delete site-specific admin accounts
- Made agent line code optional with auto-generation fallback using `{site_code}-agent-{counter}` format
This commit is contained in:
@@ -7,6 +7,7 @@ use Illuminate\Database\Seeder;
|
||||
use App\Support\AdminAgentPermissionMenuActionSync;
|
||||
use App\Support\AdminDrawPermissionMenuActionSync;
|
||||
use App\Support\PlatformSystemRoles;
|
||||
use App\Support\SuperAdminAccount;
|
||||
|
||||
/**
|
||||
* 后台 RBAC:平台固定角色 super_admin / agent。
|
||||
@@ -22,8 +23,6 @@ final class AdminRbacAndUserSeeder extends Seeder
|
||||
|
||||
PlatformSystemRoles::ensureAll();
|
||||
|
||||
$super = PlatformSystemRoles::ensureSuperAdminRole();
|
||||
|
||||
$username = 'admin';
|
||||
AdminUser::query()->updateOrCreate(
|
||||
['username' => $username],
|
||||
@@ -37,13 +36,6 @@ final class AdminRbacAndUserSeeder extends Seeder
|
||||
|
||||
/** @var AdminUser $admin */
|
||||
$admin = AdminUser::query()->where('username', $username)->firstOrFail();
|
||||
$siteId = AdminUser::defaultAdminSiteId();
|
||||
$superId = (int) $super->getKey();
|
||||
$admin->roles()->sync([
|
||||
$superId => [
|
||||
'site_id' => $siteId,
|
||||
'granted_at' => now(),
|
||||
],
|
||||
]);
|
||||
SuperAdminAccount::assign($admin);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user