From 91ddc64009addeff6e37a30d7aada126dd106b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Tue, 4 Nov 2025 16:37:01 -0300 Subject: [PATCH] Add MakeSuperAdmin command: Implemented a console command to promote a user to super admin based on their email address. The command includes validation for email format and checks for existing users and roles, enhancing user management capabilities. --- app/Console/Commands/MakeSuperAdmin.php | 71 +++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 app/Console/Commands/MakeSuperAdmin.php diff --git a/app/Console/Commands/MakeSuperAdmin.php b/app/Console/Commands/MakeSuperAdmin.php new file mode 100644 index 0000000..a435dbe --- /dev/null +++ b/app/Console/Commands/MakeSuperAdmin.php @@ -0,0 +1,71 @@ +ask('Email adresini giriniz:'); + + if (empty($email)) { + $this->error('Email adresi boş olamaz!'); + return self::FAILURE; + } + + // Email formatını kontrol et + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + $this->error('Geçersiz email formatı!'); + return self::FAILURE; + } + + // Kullanıcıyı bul + $user = User::where('email', $email)->first(); + + if (!$user) { + $this->error("Email adresi '{$email}' ile kayıtlı kullanıcı bulunamadı!"); + return self::FAILURE; + } + + // Super admin rolünü kontrol et veya oluştur + $role = Role::firstOrCreate(['name' => 'super_admin'], [ + 'guard_name' => 'web', + ]); + + // Kullanıcı zaten super admin mi kontrol et + if ($user->hasRole('super_admin')) { + $this->warn("Kullanıcı '{$user->name}' ({$user->email}) zaten super admin!"); + return self::SUCCESS; + } + + // Super admin rolünü ata + $user->assignRole('super_admin'); + + $this->info("✓ Kullanıcı '{$user->name}' ({$user->email}) başarıyla super admin yapıldı!"); + + return self::SUCCESS; + } +} +