diff --git a/app/Models/Admin.php b/app/Models/Admin.php index fdb0fa8..7da8edd 100644 --- a/app/Models/Admin.php +++ b/app/Models/Admin.php @@ -5,7 +5,6 @@ namespace App\Models; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; -use Illuminate\Support\Str; class Admin extends Authenticatable { @@ -15,6 +14,7 @@ class Admin extends Authenticatable 'name', 'email', 'password', + 'role' ]; protected $hidden = [ @@ -26,4 +26,9 @@ class Admin extends Authenticatable 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; + + public function isAdmin(): bool + { + return $this->role === 'admin'; + } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 3d6f700..4c66509 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,10 +2,14 @@ namespace App\Providers; +use App\Models\Admin; use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; +use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; +use Laravel\Pulse\Facades\Pulse; class AppServiceProvider extends ServiceProvider { @@ -22,11 +26,18 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - Scramble::configure() - ->withDocumentTransformers(function (OpenApi $openApi) { - $openApi->secure( - SecurityScheme::http('bearer') - ); + if (Auth::guard('monitoring')->user() && Auth::guard('monitoring')->user()->email === 'superadminMonitoring@humicengineering.com') { + Scramble::configure() + ->withDocumentTransformers(function (OpenApi $openApi) { + $openApi->secure( + SecurityScheme::http('bearer') + ); + }); + } + + Gate::define('viewPulse', function ($user = null) { + $monitoringUser = request()->user('monitoring'); + return $monitoringUser && $monitoringUser->email === 'superadminMonitoring@humicengineering.com'; }); } } diff --git a/database/migrations/2025_04_19_201544_create_admins_table.php b/database/migrations/2025_04_19_201544_create_admins_table.php index 09c0645..e296384 100644 --- a/database/migrations/2025_04_19_201544_create_admins_table.php +++ b/database/migrations/2025_04_19_201544_create_admins_table.php @@ -17,6 +17,7 @@ return new class extends Migration $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); + $table->string('role')->default('users'); $table->rememberToken(); $table->timestamps(); }); diff --git a/database/seeders/AdminSeeder.php b/database/seeders/AdminSeeder.php index caf8dab..612e095 100644 --- a/database/seeders/AdminSeeder.php +++ b/database/seeders/AdminSeeder.php @@ -16,6 +16,7 @@ class AdminSeeder extends Seeder 'email' => 'superadminMonitoring@humicengineering.com', 'password' => bcrypt('SuperAdminMonitoringHumic#123'), 'email_verified_at' => now(), + 'role' => 'admin', 'remember_token' => Str::random(10), ]); }