From 70a9cbc15949f925e4b30f9331246dff80dd0bf1 Mon Sep 17 00:00:00 2001 From: Siebe Vanden Eynden Date: Thu, 27 Feb 2025 09:48:24 +0100 Subject: [PATCH 1/2] Add an invokable resolve connection message class so that we don't need to a closure in the config file that we can't properly cache --- app/Http/Controllers/ControlMessageController.php | 9 ++++++++- app/Support/Messages/ResolveConnectionMessage.php | 15 +++++++++++++++ config/expose-server.php | 4 +--- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 app/Support/Messages/ResolveConnectionMessage.php diff --git a/app/Http/Controllers/ControlMessageController.php b/app/Http/Controllers/ControlMessageController.php index 060b635..f158655 100644 --- a/app/Http/Controllers/ControlMessageController.php +++ b/app/Http/Controllers/ControlMessageController.php @@ -154,7 +154,14 @@ protected function resolveConnectionMessage($connectionInfo, $user) { $deferred = new Deferred(); - $connectionMessageResolver = config('expose-server.messages.resolve_connection_message')($connectionInfo, $user); + $resolveConnectionMessage = config('expose-server.messages.resolve_connection_message'); + if(is_string($resolveConnectionMessage) && class_exists($resolveConnectionMessage)) { + $connectionMessageResolver = (new $resolveConnectionMessage())($connectionInfo, $user); + } else if($resolveConnectionMessage instanceof \Closure) { + $connectionMessageResolver = $resolveConnectionMessage($connectionInfo, $user); + } else { + $connectionMessageResolver = $resolveConnectionMessage; + } if ($connectionMessageResolver instanceof PromiseInterface) { $connectionMessageResolver->then(function ($connectionMessage) use ($connectionInfo, $deferred) { diff --git a/app/Support/Messages/ResolveConnectionMessage.php b/app/Support/Messages/ResolveConnectionMessage.php new file mode 100644 index 0000000..0b3c0e9 --- /dev/null +++ b/app/Support/Messages/ResolveConnectionMessage.php @@ -0,0 +1,15 @@ + [ - 'resolve_connection_message' => function ($connectionInfo, $user) { - return config('expose-server.messages.message_of_the_day'); - }, + 'resolve_connection_message' => \Expose\Server\Support\Messages\ResolveConnectionMessage::class, 'message_of_the_day' => 'Thank you for using expose.', From 5869f8c142b63e352d1f583d90d483cef53b9825 Mon Sep 17 00:00:00 2001 From: Siebe Vanden Eynden Date: Thu, 27 Feb 2025 09:51:45 +0100 Subject: [PATCH 2/2] Allow the user to be null --- app/Support/Messages/ResolveConnectionMessage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Support/Messages/ResolveConnectionMessage.php b/app/Support/Messages/ResolveConnectionMessage.php index 0b3c0e9..f4b6067 100644 --- a/app/Support/Messages/ResolveConnectionMessage.php +++ b/app/Support/Messages/ResolveConnectionMessage.php @@ -8,7 +8,7 @@ class ResolveConnectionMessage { - public function __invoke(ControlConnection $connectionInfo, array $user) + public function __invoke(ControlConnection $connectionInfo, array|null $user) { return config('expose-server.messages.message_of_the_day'); }