123456789101112131415161718192021222324252627282930 |
- <?php
- namespace App\Http\Requests;
- use App\Models\Company;
- use App\Models\User;
- use Illuminate\Database\Query\Builder;
- use Illuminate\Support\Facades\Auth;
- trait RuleHelper
- {
- protected function userCompanyWhere(): \Closure
- {
- $company = Company::query()->where("id", Auth::user()->company_id)->orWhere('parent_id', Auth::user()->company_id)->pluck("id");
- return fn (Builder $query) => $query->whereIn('company_id', $company->toArray());
- }
- protected function usersCompanyRules(): array
- {
- return [
- 'array',
- function ($attribute, $value, $fail) {
- $userCount = User::where("company_id", Auth::user()->company_id)->whereIn('id', $value)->count();
- if ($userCount != count($value)) {
- $fail('The selected user is invalid.');
- }
- }
- ];
- }
- }
|