diff --git a/app/ModelFilters/AgriculturalBaseFilter.php b/app/ModelFilters/AgriculturalBaseFilter.php index 058e049..e8f7a30 100644 --- a/app/ModelFilters/AgriculturalBaseFilter.php +++ b/app/ModelFilters/AgriculturalBaseFilter.php @@ -2,13 +2,22 @@ namespace App\ModelFilters; +use App\Models\AdminUser; use EloquentFilter\ModelFilter; +use Illuminate\Support\Facades\Auth; class AgriculturalBaseFilter extends ModelFilter { public function type($type) { - return $this->where('type', $type); + return $this->where('type', $type) + ->when($type == 1, function ($builder) { + $user = Auth::user(); + + if ($user instanceof AdminUser && ! $user->isAdministrator() && ! $user->view_all_bases) { + $builder->whereRaw("id in (select base_id from admin_user_bases where user_id = {$user->id})"); + } + }); } public function parent($parent) diff --git a/app/ModelFilters/CropYieldFilter.php b/app/ModelFilters/CropYieldFilter.php index 538e141..0f090c2 100644 --- a/app/ModelFilters/CropYieldFilter.php +++ b/app/ModelFilters/CropYieldFilter.php @@ -2,7 +2,9 @@ namespace App\ModelFilters; +use App\Models\AdminUser; use EloquentFilter\ModelFilter; +use Illuminate\Support\Facades\Auth; class CropYieldFilter extends ModelFilter { @@ -25,7 +27,13 @@ class CropYieldFilter extends ModelFilter public function type($type) { return $this->whereHas('base', function($q) use ($type) { - return $q->where('type', $type); + return $q->when($type == 1, function ($builder) { + $user = Auth::user(); + + if ($user instanceof AdminUser && ! $user->isAdministrator() && ! $user->view_all_bases) { + $builder->whereRaw("id in (select base_id from admin_user_bases where user_id = {$user->id})"); + } + })->where('type', $type); }); } }