![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/medad.corals.io/Corals/modules/Medad/Traits/ |
<?php namespace Corals\Modules\Medad\Traits; use Corals\Modules\Medad\Facades\Medad; use Corals\Modules\Medad\Models\Branch; use Corals\Modules\Medad\Models\Company; use Corals\Modules\Medad\Models\DeliveryNote; use Corals\Modules\Medad\Models\Project; use Corals\Modules\Medad\Models\QuotationRequest; use Corals\Modules\Medad\Models\Vehicle; use Corals\User\Models\User; trait MedadItemsAccessTrait { /** * @return bool */ public function canAccess($model, $fullAccess = true) { if (!$model) { return true; } $userCompany = Medad::getUserCompany(); if (!$userCompany) { return false; } if ($model instanceof Company) { return $userCompany->id == $model->id; } elseif ($model instanceof Branch) { return $userCompany->id == $model->parent_id; } elseif ($model instanceof Project) { return $userCompany->id == $model->branch->parent_id; } elseif ($model instanceof Vehicle) { return $userCompany->id == $model->company_id; } else { if ($fullAccess) { $ownerCompany = Medad::getUserCompany($model->owner); return $userCompany->id == optional($ownerCompany)->id; } else { if ($model instanceof QuotationRequest) { if ($userCompany->id == $model->customer_company_id) { return true; } else { return $model->suppliers() ->where('medad_quotation_request_suppliers.company_id', $userCompany->id)->exists(); } } else { return $userCompany->id == $model->customer_company_id || $userCompany->id == $model->supplier_company_id; } } } } /** * @return bool */ public function addAttachments(User $user, $model) { if ($user->hasRole('medad_driver')) { if ($model instanceof DeliveryNote && $model->driver_id != $user->id) { return false; } } return $this->canAccess($model, false) && $model->status != 'draft'; } /** * @return bool */ public function notesList(User $user, $model) { return $model->comments()->exists(); } }