Files
ficheagent/app/Console/Commands/MakeSuperAdmin.php

41 lines
1.2 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Models\User;
use App\Models\Role;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class MakeSuperAdmin extends Command
{
protected $signature = 'make:superadmin {email}';
protected $description = 'Promote a user to SuperAdmin';
public function handle()
{
$email = $this->argument('email');
$user = User::withoutGlobalScope('structure')->where('email', $email)->first();
if (!$user) {
$this->error("Utilisateur non trouvé.");
return;
}
// S'assurer que le rôle SuperAdmin existe (globalement)
$role = Role::withoutGlobalScope('structure')->firstOrCreate(
['name' => 'SuperAdmin', 'guard_name' => 'web'],
['structure_id' => null] // Rôle global
);
// Assigner le rôle sur le contexte de l'utilisateur (ou structure 1 par défaut pour le CABM)
setPermissionsTeamId($user->structure_id ?? 1);
if (!$user->hasRole('SuperAdmin')) {
$user->assignRole($role);
}
$this->info("Félicitations ! L'utilisateur {$email} a été promu SuperAdmin.");
}
}