diff --git a/app/Http/ValidationRules/Ninja/CanAddUserRule.php b/app/Http/ValidationRules/Ninja/CanAddUserRule.php index 6e19dbd09b14..1e4a51b7b7f2 100644 --- a/app/Http/ValidationRules/Ninja/CanAddUserRule.php +++ b/app/Http/ValidationRules/Ninja/CanAddUserRule.php @@ -31,21 +31,37 @@ class CanAddUserRule implements Rule */ public function passes($attribute, $value) { + /** @var \App\Models\User $user */ + $user = auth()->user(); + /* If the user is active then we can add them to the company */ - if (User::where('email', request()->input('email'))->where('account_id', auth()->user()->account_id)->where('is_deleted', 0)->exists()) { + if (User::where('email', request()->input('email'))->where('account_id', $user->account_id)->where('is_deleted', 0)->exists()) { return true; } - /* Check that we have sufficient quota to allow this to happen */ + /* + Check that we have sufficient quota to allow this to happen + + @ 31-01-2024 - changed query to use email instead of user_id + $count = CompanyUser::query() - ->where('company_user.account_id', auth()->user()->account_id) + ->where('company_user.account_id', $user->account_id) ->join('users', 'users.id', '=', 'company_user.user_id') ->whereNull('users.deleted_at') ->whereNull('company_user.deleted_at') ->distinct() ->count('company_user.user_id'); + */ - return $count < auth()->user()->company()->account->num_users; + $count = CompanyUser::query() + ->where("company_user.account_id", $user->account_id) + ->join("users", "users.id", "=", "company_user.user_id") + ->whereNull("users.deleted_at") + ->whereNull("company_user.deleted_at") + ->distinct() + ->count("users.email"); + + return $count < $user->company()->account->num_users; } /** @@ -53,6 +69,11 @@ class CanAddUserRule implements Rule */ public function message() { - return ctrans('texts.limit_users', ['limit' => auth()->user()->company()->account->num_users]); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return ctrans('texts.limit_users', ['limit' => $user->company()->account->num_users]); + } }