RuleHelper.php 891 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Models\Company;
  4. use App\Models\User;
  5. use Illuminate\Database\Query\Builder;
  6. use Illuminate\Support\Facades\Auth;
  7. trait RuleHelper
  8. {
  9. protected function userCompanyWhere(): \Closure
  10. {
  11. $company = Company::query()->where("id", Auth::user()->company_id)->orWhere('parent_id', Auth::user()->company_id)->pluck("id");
  12. return fn (Builder $query) => $query->whereIn('company_id', $company->toArray());
  13. }
  14. protected function usersCompanyRules(): array
  15. {
  16. return [
  17. 'array',
  18. function ($attribute, $value, $fail) {
  19. $userCount = User::where("company_id", Auth::user()->company_id)->whereIn('id', $value)->count();
  20. if ($userCount != count($value)) {
  21. $fail('The selected user is invalid.');
  22. }
  23. }
  24. ];
  25. }
  26. }