41 lines
1.2 KiB
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.");
|
|
}
|
|
}
|