From bfdf3533fd9424c7050ece4adbea56ecea00a2b3 Mon Sep 17 00:00:00 2001
From: Richard Anderson <richard@andermail.co.uk>
Date: Sat, 18 Jan 2025 20:29:18 +0000
Subject: [PATCH] Filter out project users (#437)

---
 app/Web/Pages/Settings/Projects/Widgets/AddUser.php | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/app/Web/Pages/Settings/Projects/Widgets/AddUser.php b/app/Web/Pages/Settings/Projects/Widgets/AddUser.php
index 7fef69d2..852553d5 100644
--- a/app/Web/Pages/Settings/Projects/Widgets/AddUser.php
+++ b/app/Web/Pages/Settings/Projects/Widgets/AddUser.php
@@ -37,7 +37,15 @@ public function form(Form $form): Form
                     ->schema([
                         Select::make('user')
                             ->name('user')
-                            ->options(fn () => User::query()->pluck('name', 'id'))
+                            ->options(fn () => User::query()
+                                ->whereNotExists(function ($query) {
+                                    $query->select('user_id')
+                                        ->from('user_project')
+                                        ->whereColumn('users.id', 'user_project.user_id')
+                                        ->where('user_project.project_id', $this->project->id);
+                                })
+                                ->pluck('name', 'id')
+                            )
                             ->searchable()
                             ->rules(\App\Actions\Projects\AddUser::rules($this->project)['user']),
                     ])