Files
tbbank-new/app/Providers/AuthServiceProvider.php

49 lines
1.8 KiB
PHP

<?php
namespace App\Providers;
use App\Models\User;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array<class-string, class-string>
*/
protected $policies = [
\App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder::class => \App\Modules\VisaMasterPaymentOrder\Policies\VisaMasterPaymentOrderPolicy::class,
\App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrderItem::class => \App\Modules\VisaMasterPaymentOrder\Policies\VisaMasterPaymentOrderItemPolicy::class,
\App\Modules\VisaMasterPaymentOrder\Models\VisaMasterSettings::class => \App\Modules\VisaMasterPaymentOrder\Policies\VisaMasterSettingsPolicy::class,
\App\Modules\OnlinePayment\Models\OnlinePayment::class => \App\Modules\OnlinePayment\Policies\OnlinePaymentPolicy::class,
];
/**
* Register services.
*/
public function register(): void
{
//
}
/**
* Bootstrap services.
*/
public function boot(): void
{
// General permissions...
Gate::define('isMe', fn (User $user) => $user->isMe());
Gate::define('isSuperAdmin', fn (User $user) => $user->isSuperAdmin());
Gate::define('isAdmin', fn (User $user) => $user->isAdmin());
Gate::define('isCurrencyMaintainer', fn (User $user) => $user->isCurrencyMaintainer());
Gate::define('systemUser', fn (User $user) => $user->isSystemUser());
Gate::define('notSystemUser', fn (User $user) => ! $user->isSystemUser());
// Tooling permissions...
// Gate::define('viewPulse', fn ($user) => $user->isAdmin());
// Gate::define('viewApiDocs', fn ($user) => $user->canAccessApiDocs());
}
}