31 lines
864 B
PHP
31 lines
864 B
PHP
<?php
|
|
|
|
namespace App\Support;
|
|
|
|
use App\Models\AdminRole;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
final class InvalidPlatformAgentRoleCleanup
|
|
{
|
|
public static function run(): int
|
|
{
|
|
$agentRoleId = DB::table('admin_roles')
|
|
->where('scope_type', AdminRole::SCOPE_SYSTEM)
|
|
->where('slug', PlatformSystemRoles::SLUG_AGENT)
|
|
->value('id');
|
|
|
|
if ($agentRoleId === null) {
|
|
return 0;
|
|
}
|
|
|
|
return DB::table('admin_user_site_roles')
|
|
->where('role_id', (int) $agentRoleId)
|
|
->whereNotExists(static function ($query): void {
|
|
$query->selectRaw('1')
|
|
->from('admin_user_agents as cleanup_uag')
|
|
->whereColumn('cleanup_uag.admin_user_id', 'admin_user_site_roles.admin_user_id');
|
|
})
|
|
->delete();
|
|
}
|
|
}
|