123456789101112131415161718192021222324252627282930 |
- <?php
- namespace App\Models\Scopes;
- use App\Models\Company;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Scope;
- use Illuminate\Support\Facades\Auth;
- class CompanyScope implements Scope
- {
- public function apply(Builder $builder, Model $model): void
- {
- if (Auth::user()) {
- // $builder->where($model->getTable() . '.company_id', '=', Auth::user()->company_id);
- if (Auth::user()->super_admin || Auth::user()->company_admin) {
- $company = Company::query()
- ->where('id',Auth::user()->company_id)
- ->orWhere("parent_id", Auth::user()->company_id)
- ->pluck("id");
- $builder->whereIn($model->getTable() . '.company_id', $company->toArray());
- }else{
- $builder->where($model->getTable() . '.company_id', '=', Auth::user()->company_id);
- }
- }
- }
- }
|