diff --git a/js/forum/src/components/LogInModal.js b/js/forum/src/components/LogInModal.js index c4acab352..b4721aaaf 100644 --- a/js/forum/src/components/LogInModal.js +++ b/js/forum/src/components/LogInModal.js @@ -129,18 +129,13 @@ export default class LogInModal extends Modal { } onerror(error) { - switch (error.status) { - case 401: + if (error.status === 401) { + if (error.response.emailConfirmationRequired) { error.alert.props.children = app.trans('core.forum.log_in_confirmation_required_message', {email: error.response.emailConfirmationRequired}); delete error.alert.props.type; - break; - - case 404: + } else { error.alert.props.children = app.trans('core.forum.log_in_invalid_login_message'); - break; - - default: - // no default + } } super.onerror(error); diff --git a/js/lib/App.js b/js/lib/App.js index e136e257e..d873fe125 100644 --- a/js/lib/App.js +++ b/js/lib/App.js @@ -236,7 +236,7 @@ export default class App { return responseText; }; - if (this.requestError) this.requestError.hideAlert(); + if (this.requestError) this.alerts.dismiss(this.requestError.alert); // Now make the request. If it's a failure, inspect the error that was // returned and show an alert containing its contents. diff --git a/src/Api/Controller/TokenController.php b/src/Api/Controller/TokenController.php index 9bb2de6bd..074709f90 100644 --- a/src/Api/Controller/TokenController.php +++ b/src/Api/Controller/TokenController.php @@ -11,12 +11,12 @@ namespace Flarum\Api\Controller; use Flarum\Api\Command\GenerateAccessToken; +use Flarum\Core\Exception\PermissionDeniedException; use Flarum\Core\Repository\UserRepository; use Flarum\Event\UserEmailChangeWasRequested; use Flarum\Http\Controller\ControllerInterface; use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher; use Illuminate\Contracts\Events\Dispatcher as EventDispatcher; -use Illuminate\Database\Eloquent\ModelNotFoundException; use Psr\Http\Message\ServerRequestInterface; use Zend\Diactoros\Response\JsonResponse; @@ -62,7 +62,7 @@ class TokenController implements ControllerInterface $user = $this->users->findByIdentification($identification); if (! $user || ! $user->checkPassword($password)) { - throw new ModelNotFoundException; + throw new PermissionDeniedException; } if (! $user->is_activated) {