From db8dd3418188997c9acd8b0fea55f22b4301e60e Mon Sep 17 00:00:00 2001 From: Joe Aliperti Date: Thu, 10 Nov 2016 13:42:47 -0700 Subject: [PATCH] Fixed an issue that prevented authentication in private or presence channels containing the words 'private' or 'presence' in their channel names --- .../Broadcasting/Broadcasters/PusherBroadcaster.php | 8 +++++++- .../Broadcasting/Broadcasters/RedisBroadcaster.php | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php b/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php index 31944a2da795..44f8228c7ebc 100644 --- a/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php +++ b/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php @@ -41,8 +41,14 @@ public function auth($request) throw new HttpException(403); } + if (Str::startsWith($request->channel_name, 'private-')) { + return parent::verifyUserCanAccessChannel( + $request, Str::replaceFirst('private-', '', $request->channel_name) + ); + } + return parent::verifyUserCanAccessChannel( - $request, str_replace(['private-', 'presence-'], '', $request->channel_name) + $request, Str::replaceFirst('presence-', '', $request->channel_name) ); } diff --git a/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php b/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php index 6b7e5be66c92..6258d8acae0d 100644 --- a/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php +++ b/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php @@ -49,8 +49,14 @@ public function auth($request) throw new HttpException(403); } + if (Str::startsWith($request->channel_name, 'private-')) { + return parent::verifyUserCanAccessChannel( + $request, Str::replaceFirst('private-', '', $request->channel_name) + ); + } + return parent::verifyUserCanAccessChannel( - $request, str_replace(['private-', 'presence-'], '', $request->channel_name) + $request, Str::replaceFirst('presence-', '', $request->channel_name) ); }