From 3b97eaa658fccc480d1688427e5e5c78981fa6ea Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Fri, 3 Feb 2017 20:25:21 +0100 Subject: [PATCH] Throw HTTP 403 on extension validation error The way I read it, HTTP 405 is a generic statement about the resource. Once a language pack is not the default, this is not true anymore, so I figured 403 is more correct. --- .../src/Core/Listener/ExtensionValidator.php | 6 ++--- .../src/Http/Exception/ForbiddenException.php | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 framework/core/src/Http/Exception/ForbiddenException.php diff --git a/framework/core/src/Core/Listener/ExtensionValidator.php b/framework/core/src/Core/Listener/ExtensionValidator.php index 2f25af476..b7e3634d6 100644 --- a/framework/core/src/Core/Listener/ExtensionValidator.php +++ b/framework/core/src/Core/Listener/ExtensionValidator.php @@ -12,7 +12,7 @@ namespace Flarum\Core\Listener; use Flarum\Event\ExtensionWillBeDisabled; -use Flarum\Http\Exception\MethodNotAllowedException; +use Flarum\Http\Exception\ForbiddenException; use Illuminate\Contracts\Events\Dispatcher; class ExtensionValidator @@ -27,7 +27,7 @@ class ExtensionValidator /** * @param ExtensionWillBeDisabled $event - * @throws MethodNotAllowedException + * @throws ForbiddenException */ public function whenExtensionWillBeDisabled(ExtensionWillBeDisabled $event) { @@ -35,7 +35,7 @@ class ExtensionValidator $default_locale = $this->app->make('flarum.settings')->get('default_locale'); $locale = array_get($event->extension->extra, 'flarum-locale.code'); if ($locale === $default_locale) { - throw new MethodNotAllowedException('You cannot disable the default language pack!'); + throw new ForbiddenException('You cannot disable the default language pack!'); } } } diff --git a/framework/core/src/Http/Exception/ForbiddenException.php b/framework/core/src/Http/Exception/ForbiddenException.php new file mode 100644 index 000000000..55cc50557 --- /dev/null +++ b/framework/core/src/Http/Exception/ForbiddenException.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Flarum\Http\Exception; + +use Exception; + +class ForbiddenException extends Exception +{ + public function __construct($message = null, $code = 403, Exception $previous = null) + { + parent::__construct($message, $code, $previous); + } +}