checkUserIsAttachable($value); } /** * @return string */ public function message() { return $this->message; } /** * @param $user_id * @return bool */ private function checkUserIsAttachable($email) : bool { if (empty($email)) { return false; } $user = User::where('email', $email)->first(); if(!$user) return true; $user_already_attached = CompanyUser::query() ->where('user_id', $user->id) ->where('account_id',$user->account_id) ->where('company_id', auth()->user()->company()->id) ->exists(); //If the user is already attached or isn't link to this account - return false if($user_already_attached) { $this->message = ctrans('texts.user_duplicate_error'); return false; } if($user->account_id != auth()->user()->account_id){ $this->message = ctrans('texts.user_cross_linked_error'); return false; } return true; } }