Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/medad.corals.io/Corals/modules/Medad/Traits/MedadItemsAccessTrait.php
<?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();
    }
}

Spamworldpro Mini