Fixes for company user counter

This commit is contained in:
David Bomba 2024-01-31 18:23:54 +11:00
parent e785094b9e
commit 50cf6dbccb

View File

@ -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]);
}
}