From 7030578bbe9e11c18b5becaf8b06e670e3c2e3cd Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Sun, 14 Jul 2013 01:32:34 -0400 Subject: [ticket/11698] Moving all autoloadable files to phpbb/ PHPBB3-11698 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 85 +++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 phpBB/phpbb/event/kernel_exception_subscriber.php (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php new file mode 100644 index 0000000000..f90989a74c --- /dev/null +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -0,0 +1,85 @@ +template = $template; + $this->user = $user; + } + + /** + * This listener is run when the KernelEvents::EXCEPTION event is triggered + * + * @param GetResponseForExceptionEvent $event + * @return null + */ + public function on_kernel_exception(GetResponseForExceptionEvent $event) + { + page_header($this->user->lang('INFORMATION')); + + $exception = $event->getException(); + + $this->template->assign_vars(array( + 'MESSAGE_TITLE' => $this->user->lang('INFORMATION'), + 'MESSAGE_TEXT' => $exception->getMessage(), + )); + + $this->template->set_filenames(array( + 'body' => 'message_body.html', + )); + + page_footer(true, false, false); + + + $status_code = $exception instanceof HttpException ? $exception->getStatusCode() : 500; + $response = new Response($this->template->assign_display('body'), $status_code); + $event->setResponse($response); + } + + public static function getSubscribedEvents() + { + return array( + KernelEvents::EXCEPTION => 'on_kernel_exception', + ); + } +} -- cgit v1.2.1 From b95fdacdd378877d277e261465da73deb06e50da Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Tue, 10 Sep 2013 14:01:09 +0200 Subject: [ticket/11700] Move all recent code to namespaces PHPBB3-11700 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index f90989a74c..7199f47ae8 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -7,6 +7,8 @@ * */ +namespace phpbb\event; + /** * @ignore */ @@ -21,27 +23,27 @@ use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpFoundation\Response; -class phpbb_event_kernel_exception_subscriber implements EventSubscriberInterface +class kernel_exception_subscriber implements EventSubscriberInterface { /** * Template object - * @var phpbb_template + * @var \phpbb\template\template */ protected $template; /** * User object - * @var phpbb_user + * @var \phpbb\user */ protected $user; /** * Construct method * - * @param phpbb_template $template Template object - * @param phpbb_user $user User object + * @param \phpbb\template\template $template Template object + * @param \phpbb\user $user User object */ - public function __construct(phpbb_template $template, phpbb_user $user) + public function __construct(\phpbb\template\template $template, \phpbb\user $user) { $this->template = $template; $this->user = $user; @@ -53,7 +55,7 @@ class phpbb_event_kernel_exception_subscriber implements EventSubscriberInterfac * @param GetResponseForExceptionEvent $event * @return null */ - public function on_kernel_exception(GetResponseForExceptionEvent $event) + public function on_kernel_exception(\GetResponseForExceptionEvent $event) { page_header($this->user->lang('INFORMATION')); @@ -72,7 +74,7 @@ class phpbb_event_kernel_exception_subscriber implements EventSubscriberInterfac $status_code = $exception instanceof HttpException ? $exception->getStatusCode() : 500; - $response = new Response($this->template->assign_display('body'), $status_code); + $response = new \Response($this->template->assign_display('body'), $status_code); $event->setResponse($response); } -- cgit v1.2.1 From fe36375a36ec4f816eb07b41630b6c9fa7ff12c8 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Thu, 19 Sep 2013 18:29:08 +0200 Subject: [ticket/11700] Fix extension loading with namespaces class loader now expects all classes to be prefixed with a backslash when resolving paths PHPBB3-11700 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 7199f47ae8..09103680e8 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -55,7 +55,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface * @param GetResponseForExceptionEvent $event * @return null */ - public function on_kernel_exception(\GetResponseForExceptionEvent $event) + public function on_kernel_exception(GetResponseForExceptionEvent $event) { page_header($this->user->lang('INFORMATION')); @@ -74,7 +74,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface $status_code = $exception instanceof HttpException ? $exception->getStatusCode() : 500; - $response = new \Response($this->template->assign_display('body'), $status_code); + $response = new Response($this->template->assign_display('body'), $status_code); $event->setResponse($response); } -- cgit v1.2.1 From 7f58a4572eaca75aecff2da889e67ea151616011 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 28 Oct 2013 22:27:25 +0100 Subject: [ticket/11981] Fix code sniffer complaints PHPBB3-11981 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 1 - 1 file changed, 1 deletion(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 09103680e8..7003e73b38 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -72,7 +72,6 @@ class kernel_exception_subscriber implements EventSubscriberInterface page_footer(true, false, false); - $status_code = $exception instanceof HttpException ? $exception->getStatusCode() : 500; $response = new Response($this->template->assign_display('body'), $status_code); $event->setResponse($response); -- cgit v1.2.1 From 7aa8f6461f1e85cf91931f56b95384e54fec07c2 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Wed, 30 Oct 2013 13:05:28 +0100 Subject: [task/code-sniffer] Remove the IN_PHPBB check side-effect from class files. PHPBB3-11980 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 8 -------- 1 file changed, 8 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 7003e73b38..8a4de1fbad 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -9,14 +9,6 @@ namespace phpbb\event; -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; -- cgit v1.2.1 From a759704b39fc1c1353f865a633759b1369589b67 Mon Sep 17 00:00:00 2001 From: Yuriy Rusko Date: Tue, 27 May 2014 20:18:06 +0200 Subject: [ticket/12594] Remove @package tags and update file headers PHPBB3-12594 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 8a4de1fbad..44e87507f9 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -1,9 +1,13 @@ +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. * */ -- cgit v1.2.1 From b00d02496e9ec8281a6e0d6637772c55a7011c60 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Sat, 22 Nov 2014 23:10:19 +0100 Subject: [ticket/13361] Improve the exception listener PHPBB3-13361 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 44e87507f9..1e536c1b8f 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -14,9 +14,9 @@ namespace phpbb\event; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; -use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpFoundation\Response; class kernel_exception_subscriber implements EventSubscriberInterface @@ -57,9 +57,16 @@ class kernel_exception_subscriber implements EventSubscriberInterface $exception = $event->getException(); + $message = $exception->getMessage(); + + if ($exception instanceof \phpbb\exception\exception_interface) + { + $message = call_user_func_array(array($this->user, 'lang'), array_merge(array($message), $exception->get_parameters())); + } + $this->template->assign_vars(array( 'MESSAGE_TITLE' => $this->user->lang('INFORMATION'), - 'MESSAGE_TEXT' => $exception->getMessage(), + 'MESSAGE_TEXT' => $message, )); $this->template->set_filenames(array( @@ -68,8 +75,14 @@ class kernel_exception_subscriber implements EventSubscriberInterface page_footer(true, false, false); - $status_code = $exception instanceof HttpException ? $exception->getStatusCode() : 500; - $response = new Response($this->template->assign_display('body'), $status_code); + $response = new Response($this->template->assign_display('body'), 500); + + if ($exception instanceof HttpExceptionInterface) + { + $response->setStatusCode($exception->getStatusCode()); + $response->headers->add($exception->getHeaders()); + } + $event->setResponse($response); } -- cgit v1.2.1 From 74e8f9bd4e6c55dddb473e1a301d2cae9edb6e50 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Sat, 10 Jan 2015 17:14:14 +0100 Subject: [ticket/13361] Support ajax request (send a json response) PHPBB3-13361 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 34 +++++++++++++++++------ 1 file changed, 25 insertions(+), 9 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 1e536c1b8f..b6b34675f0 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -14,6 +14,7 @@ namespace phpbb\event; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; @@ -64,18 +65,33 @@ class kernel_exception_subscriber implements EventSubscriberInterface $message = call_user_func_array(array($this->user, 'lang'), array_merge(array($message), $exception->get_parameters())); } - $this->template->assign_vars(array( - 'MESSAGE_TITLE' => $this->user->lang('INFORMATION'), - 'MESSAGE_TEXT' => $message, - )); + if (!$event->getRequest()->isXmlHttpRequest()) + { + $this->template->assign_vars(array( + 'MESSAGE_TITLE' => $this->user->lang('INFORMATION'), + 'MESSAGE_TEXT' => $message, + )); + + $this->template->set_filenames(array( + 'body' => 'message_body.html', + )); + + page_footer(true, false, false); - $this->template->set_filenames(array( - 'body' => 'message_body.html', - )); + $response = new Response($this->template->assign_display('body'), 500); + } + else + { + $data = array(); + $data['message'] = $message; - page_footer(true, false, false); + if (defined('DEBUG')) + { + $data['trace'] = $exception->getTrace(); + } - $response = new Response($this->template->assign_display('body'), 500); + $response = new JsonResponse($message, 500); + } if ($exception instanceof HttpExceptionInterface) { -- cgit v1.2.1 From 1f4bb2c1495e8d2641abe9606f14281e810feee4 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Sat, 10 Jan 2015 18:15:19 +0100 Subject: [ticket/13361] Add tests PHPBB3-13361 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index b6b34675f0..01940a4fa9 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -54,8 +54,6 @@ class kernel_exception_subscriber implements EventSubscriberInterface */ public function on_kernel_exception(GetResponseForExceptionEvent $event) { - page_header($this->user->lang('INFORMATION')); - $exception = $event->getException(); $message = $exception->getMessage(); @@ -67,6 +65,8 @@ class kernel_exception_subscriber implements EventSubscriberInterface if (!$event->getRequest()->isXmlHttpRequest()) { + page_header($this->user->lang('INFORMATION')); + $this->template->assign_vars(array( 'MESSAGE_TITLE' => $this->user->lang('INFORMATION'), 'MESSAGE_TEXT' => $message, @@ -83,7 +83,11 @@ class kernel_exception_subscriber implements EventSubscriberInterface else { $data = array(); - $data['message'] = $message; + + if (!empty($message)) + { + $data['message'] = $message; + } if (defined('DEBUG')) { -- cgit v1.2.1 From 8ef238ea73b481a717d8b68fb1fd7d1b8799d7f2 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Wed, 14 Jan 2015 11:13:28 +0100 Subject: [ticket/13361] Fix the JsonResponse in the exception listener PHPBB3-13361 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 01940a4fa9..eb7831ad34 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -94,7 +94,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface $data['trace'] = $exception->getTrace(); } - $response = new JsonResponse($message, 500); + $response = new JsonResponse($data, 500); } if ($exception instanceof HttpExceptionInterface) -- cgit v1.2.1 From 23bdb2eedebee5a625ba35baf3098566bb966127 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Tue, 19 Apr 2016 12:03:32 +0200 Subject: [ticket/security-196] Escapes the exception messages before displaying them SECURITY-196 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index eb7831ad34..34c8422b0a 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -34,6 +34,9 @@ class kernel_exception_subscriber implements EventSubscriberInterface */ protected $user; + /** @var \phpbb\request\type_cast_helper */ + protected $type_caster; + /** * Construct method * @@ -44,6 +47,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface { $this->template = $template; $this->user = $user; + $this->type_caster = new \phpbb\request\type_cast_helper(); } /** @@ -57,6 +61,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface $exception = $event->getException(); $message = $exception->getMessage(); + $this->type_caster->set_var($message, $message, 'string', false, false); if ($exception instanceof \phpbb\exception\exception_interface) { -- cgit v1.2.1 From 1f0c616974f95bf44d1380035439804a8af81fcc Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Fri, 14 Oct 2016 22:47:43 +0200 Subject: [ticket/14821] Replace escaped strong tags with actual tags Everything else will still be escaped. This will however add back support for bold text in exception messages. PHPBB3-14821 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 34c8422b0a..957dcedc5d 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -68,6 +68,9 @@ class kernel_exception_subscriber implements EventSubscriberInterface $message = call_user_func_array(array($this->user, 'lang'), array_merge(array($message), $exception->get_parameters())); } + // Show text in bold + $message = preg_replace('#<(/?)(strong)>#i', '<$1$2>', $message); + if (!$event->getRequest()->isXmlHttpRequest()) { page_header($this->user->lang('INFORMATION')); -- cgit v1.2.1 From d98a1c4bc4018f8d75d9e98cf7ec70fbf864bfb0 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 18 Oct 2016 22:07:54 +0200 Subject: [ticket/14821] Simplify regex for converting tags back to HTML PHPBB3-14821 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 957dcedc5d..9d15f9370e 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -69,7 +69,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface } // Show text in bold - $message = preg_replace('#<(/?)(strong)>#i', '<$1$2>', $message); + $message = preg_replace('#<(/?strong)>#i', '<$1>', $message); if (!$event->getRequest()->isXmlHttpRequest()) { -- cgit v1.2.1 From 390a37492dbba7f39539207829eba5d10040b613 Mon Sep 17 00:00:00 2001 From: "Victor A. Safronov" Date: Fri, 25 Nov 2016 19:47:14 +0400 Subject: [ticket/14876] Allows multibyte strings for exception messages All exception messages are sanitized via type_caster::set_var() which is called with $multibyte = false. This commit allows to pass multibyte messages as well. PHPBB3-14876 --- phpBB/phpbb/event/kernel_exception_subscriber.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php') diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 9d15f9370e..1ee771cfe7 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -61,7 +61,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface $exception = $event->getException(); $message = $exception->getMessage(); - $this->type_caster->set_var($message, $message, 'string', false, false); + $this->type_caster->set_var($message, $message, 'string', true, false); if ($exception instanceof \phpbb\exception\exception_interface) { -- cgit v1.2.1