87 خطوط
3.1 KiB
PHP
87 خطوط
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Models\Attachment;
|
|
use App\Models\Call;
|
|
use App\Models\Campaign;
|
|
use App\Models\Company;
|
|
use App\Models\Contact;
|
|
use App\Models\Deal;
|
|
use App\Models\FollowUp;
|
|
use App\Models\ImportBatch;
|
|
use App\Models\Invoice;
|
|
use App\Models\Lead;
|
|
use App\Models\Note;
|
|
use App\Models\Notification;
|
|
use App\Models\Product;
|
|
use App\Models\QualityReview;
|
|
use App\Models\SalesScript;
|
|
use App\Models\Setting;
|
|
use App\Models\Task;
|
|
use App\Models\User;
|
|
use App\Policies\AttachmentPolicy;
|
|
use App\Policies\CallPolicy;
|
|
use App\Policies\CampaignPolicy;
|
|
use App\Policies\CompanyPolicy;
|
|
use App\Policies\ContactPolicy;
|
|
use App\Policies\DashboardPolicy;
|
|
use App\Policies\DealPolicy;
|
|
use App\Policies\FollowUpPolicy;
|
|
use App\Policies\ImportBatchPolicy;
|
|
use App\Policies\InvoicePolicy;
|
|
use App\Policies\LeadPolicy;
|
|
use App\Policies\NotePolicy;
|
|
use App\Policies\NotificationPolicy;
|
|
use App\Policies\ProductPolicy;
|
|
use App\Policies\QualityReviewPolicy;
|
|
use App\Policies\SalesScriptPolicy;
|
|
use App\Policies\SettingPolicy;
|
|
use App\Policies\TaskPolicy;
|
|
use App\Policies\UserPolicy;
|
|
use Illuminate\Support\Facades\Gate;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class AppServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register any application services.
|
|
*/
|
|
public function register(): void
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Bootstrap any application services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
Gate::policy(Lead::class, LeadPolicy::class);
|
|
Gate::policy(Call::class, CallPolicy::class);
|
|
Gate::policy(FollowUp::class, FollowUpPolicy::class);
|
|
Gate::policy(Campaign::class, CampaignPolicy::class);
|
|
Gate::policy(Company::class, CompanyPolicy::class);
|
|
Gate::policy(Contact::class, ContactPolicy::class);
|
|
Gate::policy(Deal::class, DealPolicy::class);
|
|
Gate::policy(Product::class, ProductPolicy::class);
|
|
Gate::policy(Note::class, NotePolicy::class);
|
|
Gate::policy(Notification::class, NotificationPolicy::class);
|
|
Gate::policy(Attachment::class, AttachmentPolicy::class);
|
|
Gate::policy(QualityReview::class, QualityReviewPolicy::class);
|
|
Gate::policy(SalesScript::class, SalesScriptPolicy::class);
|
|
Gate::policy(User::class, UserPolicy::class);
|
|
Gate::policy(Setting::class, SettingPolicy::class);
|
|
Gate::policy(ImportBatch::class, ImportBatchPolicy::class);
|
|
Gate::policy(Task::class, TaskPolicy::class);
|
|
Gate::policy(Invoice::class, InvoicePolicy::class);
|
|
|
|
Gate::define('view-report-data', fn (User $user) => $user->hasRole('admin') || $user->can('view_reports'));
|
|
Gate::define('export-report-data', fn (User $user) => $user->hasRole('admin') || $user->can('export_reports'));
|
|
Gate::define('export-sensitive-data', fn (User $user) => $user->hasRole('admin') || $user->can('export_leads') || $user->can('export_reports'));
|
|
Gate::define('view-admin-dashboard', [DashboardPolicy::class, 'viewAdmin']);
|
|
Gate::define('view-supervisor-dashboard', [DashboardPolicy::class, 'viewSupervisor']);
|
|
Gate::define('view-agent-dashboard', [DashboardPolicy::class, 'viewAgent']);
|
|
}
|
|
}
|