CompanyScope.php 983 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace App\Models\Scopes;
  3. use App\Models\Company;
  4. use Illuminate\Database\Eloquent\Builder;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\Scope;
  7. use Illuminate\Support\Facades\Auth;
  8. class CompanyScope implements Scope
  9. {
  10. public function apply(Builder $builder, Model $model): void
  11. {
  12. if (Auth::user()) {
  13. // $builder->where($model->getTable() . '.company_id', '=', Auth::user()->company_id);
  14. if (Auth::user()->super_admin || Auth::user()->company_admin) {
  15. $company = Company::query()
  16. ->where('id',Auth::user()->company_id)
  17. ->orWhere("parent_id", Auth::user()->company_id)
  18. ->pluck("id");
  19. $builder->whereIn($model->getTable() . '.company_id', $company->toArray());
  20. }else{
  21. $builder->where($model->getTable() . '.company_id', '=', Auth::user()->company_id);
  22. }
  23. }
  24. }
  25. }