Make FlashLevels an enum.
This commit is contained in:
parent
0da43ea431
commit
ede5e88a49
|
@ -7,7 +7,6 @@ namespace App\Controller\Admin\Debug;
|
|||
use App\Console\Application;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class ClearCacheAction
|
||||
|
@ -26,7 +25,7 @@ final class ClearCacheAction
|
|||
);
|
||||
|
||||
// Flash an update to ensure the session is recreated.
|
||||
$request->getFlash()->addMessage($resultOutput, Flash::SUCCESS);
|
||||
$request->getFlash()->success($resultOutput);
|
||||
|
||||
return $response->withRedirect($request->getRouter()->fromHere('admin:debug:index'));
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ use App\Http\Response;
|
|||
use App\Http\ServerRequest;
|
||||
use App\MessageQueue\QueueManagerInterface;
|
||||
use App\MessageQueue\QueueNames;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class ClearQueueAction
|
||||
|
@ -32,10 +31,7 @@ final class ClearQueueAction
|
|||
}
|
||||
|
||||
// Flash an update to ensure the session is recreated.
|
||||
$request->getFlash()->addMessage(
|
||||
__('Message queue cleared.'),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
$request->getFlash()->success(__('Message queue cleared.'));
|
||||
|
||||
return $response->withRedirect($request->getRouter()->fromHere('admin:debug:index'));
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ use App\Http\Response;
|
|||
use App\Http\ServerRequest;
|
||||
use App\RateLimit;
|
||||
use App\Service\Mail;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class ForgotPasswordAction
|
||||
|
@ -38,7 +37,7 @@ final class ForgotPasswordAction
|
|||
try {
|
||||
$this->rateLimit->checkRequestRateLimit($request, 'forgot', 30, 3);
|
||||
} catch (RateLimitExceededException) {
|
||||
$flash->addMessage(
|
||||
$flash->error(
|
||||
sprintf(
|
||||
'<b>%s</b><br>%s',
|
||||
__('Too many forgot password attempts'),
|
||||
|
@ -47,7 +46,6 @@ final class ForgotPasswordAction
|
|||
. '30 seconds and try again.'
|
||||
)
|
||||
),
|
||||
Flash::ERROR
|
||||
);
|
||||
|
||||
return $response->withRedirect($request->getUri()->getPath());
|
||||
|
@ -75,7 +73,7 @@ final class ForgotPasswordAction
|
|||
$this->mail->send($email);
|
||||
}
|
||||
|
||||
$flash->addMessage(
|
||||
$flash->success(
|
||||
sprintf(
|
||||
'<b>%s</b><br>%s',
|
||||
__('Account recovery e-mail sent.'),
|
||||
|
@ -84,7 +82,6 @@ final class ForgotPasswordAction
|
|||
. 'for a password reset message.'
|
||||
)
|
||||
),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
|
||||
return $response->withRedirect($request->getRouter()->named('account:login'));
|
||||
|
|
|
@ -9,7 +9,6 @@ use App\Exception\RateLimitExceededException;
|
|||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\RateLimit;
|
||||
use App\Session\Flash;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Mezzio\Session\SessionCookiePersistenceInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
@ -55,13 +54,12 @@ final class LoginAction
|
|||
try {
|
||||
$this->rateLimit->checkRequestRateLimit($request, 'login', 30, 5);
|
||||
} catch (RateLimitExceededException) {
|
||||
$flash->addMessage(
|
||||
$flash->error(
|
||||
sprintf(
|
||||
'<b>%s</b><br>%s',
|
||||
__('Too many login attempts'),
|
||||
__('You have attempted to log in too many times. Please wait 30 seconds and try again.')
|
||||
),
|
||||
Flash::ERROR
|
||||
);
|
||||
|
||||
return $response->withRedirect($request->getUri()->getPath());
|
||||
|
@ -93,20 +91,18 @@ final class LoginAction
|
|||
|
||||
// Redirect to complete setup if it's not completed yet.
|
||||
if (!$settings->isSetupComplete()) {
|
||||
$flash->addMessage(
|
||||
$flash->success(
|
||||
sprintf(
|
||||
'<b>%s</b><br>%s',
|
||||
__('Logged in successfully.'),
|
||||
__('Complete the setup process to get started.')
|
||||
),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
return $response->withRedirect($request->getRouter()->named('setup:index'));
|
||||
}
|
||||
|
||||
$flash->addMessage(
|
||||
$flash->success(
|
||||
'<b>' . __('Logged in successfully.') . '</b><br>' . $user->getEmail(),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
|
||||
$referrer = $session->get('login_referrer');
|
||||
|
@ -115,9 +111,8 @@ final class LoginAction
|
|||
);
|
||||
}
|
||||
|
||||
$flash->addMessage(
|
||||
$flash->error(
|
||||
'<b>' . __('Login unsuccessful') . '</b><br>' . __('Your credentials could not be verified.'),
|
||||
Flash::ERROR
|
||||
);
|
||||
|
||||
return $response->withRedirect((string)$request->getUri());
|
||||
|
|
|
@ -8,7 +8,6 @@ use App\Entity;
|
|||
use App\Exception\NotFoundException;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class MasqueradeAction
|
||||
|
@ -37,9 +36,8 @@ final class MasqueradeAction
|
|||
$auth = $request->getAuth();
|
||||
$auth->masqueradeAsUser($user);
|
||||
|
||||
$request->getFlash()->addMessage(
|
||||
$request->getFlash()->success(
|
||||
'<b>' . __('Logged in successfully.') . '</b><br>' . $user->getEmail(),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
|
||||
return $response->withRedirect($request->getRouter()->named('dashboard'));
|
||||
|
|
|
@ -7,7 +7,6 @@ namespace App\Controller\Frontend\Account;
|
|||
use App\Entity;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use InvalidArgumentException;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
@ -30,12 +29,11 @@ final class RecoverAction
|
|||
$flash = $request->getFlash();
|
||||
|
||||
if (!$user instanceof Entity\User) {
|
||||
$flash->addMessage(
|
||||
$flash->error(
|
||||
sprintf(
|
||||
'<b>%s</b>',
|
||||
__('Invalid token specified.'),
|
||||
),
|
||||
Flash::ERROR
|
||||
);
|
||||
|
||||
return $response->withRedirect($request->getRouter()->named('account:login'));
|
||||
|
@ -64,13 +62,12 @@ final class RecoverAction
|
|||
|
||||
$this->loginTokenRepo->revokeForUser($user);
|
||||
|
||||
$flash->addMessage(
|
||||
$flash->success(
|
||||
sprintf(
|
||||
'<b>%s</b><br>%s',
|
||||
__('Logged in using account recovery token'),
|
||||
__('Your password has been updated.')
|
||||
),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
|
||||
return $response->withRedirect($request->getRouter()->named('dashboard'));
|
||||
|
|
|
@ -7,7 +7,6 @@ namespace App\Controller\Frontend\Account;
|
|||
use App\Entity\User;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class TwoFactorAction
|
||||
|
@ -26,9 +25,8 @@ final class TwoFactorAction
|
|||
/** @var User $user */
|
||||
$user = $auth->getUser();
|
||||
|
||||
$flash->addMessage(
|
||||
$flash->success(
|
||||
'<b>' . __('Logged in successfully.') . '</b><br>' . $user->getEmail(),
|
||||
Flash::SUCCESS
|
||||
);
|
||||
|
||||
$referrer = $request->getSession()->get('login_referrer');
|
||||
|
@ -39,9 +37,8 @@ final class TwoFactorAction
|
|||
return $response->withRedirect($request->getRouter()->named('dashboard'));
|
||||
}
|
||||
|
||||
$flash->addMessage(
|
||||
$flash->error(
|
||||
'<b>' . __('Login unsuccessful') . '</b><br>' . __('Your credentials could not be verified.'),
|
||||
Flash::ERROR
|
||||
);
|
||||
|
||||
return $response->withRedirect((string)$request->getUri());
|
||||
|
|
|
@ -11,7 +11,6 @@ use App\Exception\PodcastNotFoundException;
|
|||
use App\Exception\StationNotFoundException;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class PodcastEpisodeAction
|
||||
|
@ -53,7 +52,7 @@ final class PodcastEpisodeAction
|
|||
);
|
||||
|
||||
if (!($episode instanceof PodcastEpisode) || !$episode->isPublished()) {
|
||||
$request->getFlash()->addMessage(__('Episode not found.'), Flash::ERROR);
|
||||
$request->getFlash()->error(__('Episode not found.'));
|
||||
return $response->withRedirect($podcastEpisodesLink);
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ use App\Exception\PodcastNotFoundException;
|
|||
use App\Exception\StationNotFoundException;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
final class PodcastEpisodesAction
|
||||
|
@ -65,7 +64,7 @@ final class PodcastEpisodesAction
|
|||
);
|
||||
|
||||
if (count($publishedEpisodes) === 0) {
|
||||
$request->getFlash()->addMessage(__('No episodes found.'), Flash::ERROR);
|
||||
$request->getFlash()->error(__('No episodes found.'));
|
||||
return $response->withRedirect($podcastsLink);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ use App\Exception\NotLoggedInException;
|
|||
use App\Exception\ValidationException;
|
||||
use App\Http\Response;
|
||||
use App\Http\ServerRequest;
|
||||
use App\Session\Flash;
|
||||
use App\Version;
|
||||
use App\VueComponent\StationFormComponent;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
@ -188,7 +187,7 @@ final class SetupController
|
|||
ServerRequest $request,
|
||||
Response $response
|
||||
): ResponseInterface {
|
||||
$request->getFlash()->addMessage('<b>' . __('Setup has already been completed!') . '</b>', Flash::ERROR);
|
||||
$request->getFlash()->error('<b>' . __('Setup has already been completed!') . '</b>');
|
||||
|
||||
return $response->withRedirect($request->getRouter()->named('dashboard'));
|
||||
}
|
||||
|
|
|
@ -175,7 +175,7 @@ final class ErrorHandler extends \Slim\Handlers\ErrorHandler
|
|||
$session = $sessionPersistence->initializeSessionFromRequest($this->request);
|
||||
|
||||
$flash = new Flash($session);
|
||||
$flash->addMessage(__('You must be logged in to access this page.'), Flash::ERROR);
|
||||
$flash->error(__('You must be logged in to access this page.'));
|
||||
|
||||
// Set referrer for login redirection.
|
||||
$session->set('login_referrer', $this->request->getUri()->getPath());
|
||||
|
@ -204,9 +204,8 @@ final class ErrorHandler extends \Slim\Handlers\ErrorHandler
|
|||
$session = $sessionPersistence->initializeSessionFromRequest($this->request);
|
||||
|
||||
$flash = new Flash($session);
|
||||
$flash->addMessage(
|
||||
$flash->error(
|
||||
__('You do not have permission to access this portion of the site.'),
|
||||
Flash::ERROR
|
||||
);
|
||||
|
||||
$response = $sessionPersistence->persistSession($session, $response);
|
||||
|
|
|
@ -8,7 +8,7 @@ use App\Entity\Api\Notification;
|
|||
use App\Entity\Repository\SettingsRepository;
|
||||
use App\Enums\GlobalPermissions;
|
||||
use App\Event\GetNotifications;
|
||||
use App\Session\Flash;
|
||||
use App\Session\FlashLevels;
|
||||
|
||||
final class BaseUrlCheck
|
||||
{
|
||||
|
@ -57,7 +57,7 @@ final class BaseUrlCheck
|
|||
(string)$baseUriWithRequest
|
||||
);
|
||||
$notification->body = implode(' ', $notificationBodyParts);
|
||||
$notification->type = Flash::WARNING;
|
||||
$notification->type = FlashLevels::Warning->value;
|
||||
$notification->actionLabel = __('System Settings');
|
||||
$notification->actionUrl = $router->named('admin:settings:index');
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ use App\Entity\Api\Notification;
|
|||
use App\Enums\GlobalPermissions;
|
||||
use App\Environment;
|
||||
use App\Event\GetNotifications;
|
||||
use App\Session\Flash;
|
||||
use App\Session\FlashLevels;
|
||||
|
||||
final class ProfilerAdvisorCheck
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ final class ProfilerAdvisorCheck
|
|||
'You can track the execution time and memory usage of any AzuraCast page or application ' .
|
||||
'from the profiler page.',
|
||||
);
|
||||
$notification->type = Flash::INFO;
|
||||
$notification->type = FlashLevels::Info->value;
|
||||
|
||||
$notification->actionLabel = __('Profiler Control Panel');
|
||||
$notification->actionUrl = '/?' . http_build_query(
|
||||
|
@ -58,7 +58,7 @@ final class ProfilerAdvisorCheck
|
|||
'This can have an adverse impact on system performance. ' .
|
||||
'You should disable this when possible.'
|
||||
);
|
||||
$notification->type = Flash::WARNING;
|
||||
$notification->type = FlashLevels::Warning->value;
|
||||
|
||||
$event->addNotification($notification);
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ use App\Entity;
|
|||
use App\Enums\GlobalPermissions;
|
||||
use App\Environment;
|
||||
use App\Event\GetNotifications;
|
||||
use App\Session\Flash;
|
||||
use App\Session\FlashLevels;
|
||||
use Carbon\CarbonImmutable;
|
||||
|
||||
final class RecentBackupCheck
|
||||
|
@ -48,7 +48,7 @@ final class RecentBackupCheck
|
|||
$notification = new Entity\Api\Notification();
|
||||
$notification->title = __('Installation Not Recently Backed Up');
|
||||
$notification->body = __('This installation has not been backed up in the last two weeks.');
|
||||
$notification->type = Flash::INFO;
|
||||
$notification->type = FlashLevels::Info->value;
|
||||
|
||||
$router = $request->getRouter();
|
||||
$notification->actionLabel = __('Backups');
|
||||
|
|
|
@ -8,7 +8,7 @@ use App\Entity\Api\Notification;
|
|||
use App\Enums\GlobalPermissions;
|
||||
use App\Event\GetNotifications;
|
||||
use App\Service\ServiceControl;
|
||||
use App\Session\Flash;
|
||||
use App\Session\FlashLevels;
|
||||
|
||||
final class ServiceCheck
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ final class ServiceCheck
|
|||
$notification->body = __(
|
||||
'One of the essential services on this installation is not currently running. Visit the system administration and check the system logs to find the cause of this issue.'
|
||||
);
|
||||
$notification->type = Flash::ERROR;
|
||||
$notification->type = FlashLevels::Error->value;
|
||||
|
||||
$router = $request->getRouter();
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace App\Notification\Check;
|
|||
use App\Entity;
|
||||
use App\Enums\GlobalPermissions;
|
||||
use App\Event\GetNotifications;
|
||||
use App\Session\Flash;
|
||||
use App\Session\FlashLevels;
|
||||
|
||||
final class SyncTaskCheck
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ final class SyncTaskCheck
|
|||
$notification->body = __(
|
||||
'Routine synchronization is currently disabled. Make sure to re-enable it to resume routine maintenance tasks.'
|
||||
);
|
||||
$notification->type = Flash::ERROR;
|
||||
$notification->type = FlashLevels::Error->value;
|
||||
// phpcs:enable
|
||||
|
||||
$event->addNotification($notification);
|
||||
|
@ -54,7 +54,7 @@ final class SyncTaskCheck
|
|||
$notification->body = __(
|
||||
'The routine synchronization task has not run recently. This may indicate an error with your installation.'
|
||||
);
|
||||
$notification->type = Flash::ERROR;
|
||||
$notification->type = FlashLevels::Error->value;
|
||||
|
||||
$router = $request->getRouter();
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ use App\Entity;
|
|||
use App\Enums\GlobalPermissions;
|
||||
use App\Enums\ReleaseChannel;
|
||||
use App\Event\GetNotifications;
|
||||
use App\Session\Flash;
|
||||
use App\Session\FlashLevels;
|
||||
use App\Version;
|
||||
|
||||
final class UpdateCheck
|
||||
|
@ -61,7 +61,7 @@ final class UpdateCheck
|
|||
$notification = new Entity\Api\Notification();
|
||||
$notification->title = __('New AzuraCast Release Version Available');
|
||||
$notification->body = implode(' ', $notificationParts);
|
||||
$notification->type = Flash::INFO;
|
||||
$notification->type = FlashLevels::Info->value;
|
||||
$notification->actionLabel = $actionLabel;
|
||||
$notification->actionUrl = $actionUrl;
|
||||
|
||||
|
@ -86,7 +86,7 @@ final class UpdateCheck
|
|||
$notification = new Entity\Api\Notification();
|
||||
$notification->title = __('New AzuraCast Updates Available');
|
||||
$notification->body = implode(' ', $notificationParts);
|
||||
$notification->type = Flash::INFO;
|
||||
$notification->type = FlashLevels::Info->value;
|
||||
$notification->actionLabel = $actionLabel;
|
||||
$notification->actionUrl = $actionUrl;
|
||||
|
||||
|
|
|
@ -13,11 +13,6 @@ final class Flash
|
|||
{
|
||||
public const SESSION_KEY = 'flash';
|
||||
|
||||
public const SUCCESS = 'success';
|
||||
public const WARNING = 'warning';
|
||||
public const ERROR = 'danger';
|
||||
public const INFO = 'info';
|
||||
|
||||
private ?array $messages = null;
|
||||
|
||||
public function __construct(
|
||||
|
@ -25,43 +20,42 @@ final class Flash
|
|||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias of addMessage.
|
||||
*
|
||||
* @param string $message
|
||||
* @param string $level
|
||||
* @param bool $saveInSession
|
||||
*/
|
||||
public function alert(string $message, string $level = self::INFO, bool $saveInSession = true): void
|
||||
{
|
||||
$this->addMessage($message, $level, $saveInSession);
|
||||
public function success(
|
||||
string $message,
|
||||
bool $saveInSession = true
|
||||
): void {
|
||||
$this->addMessage($message, FlashLevels::Success, $saveInSession);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a message to the flash message queue.
|
||||
*
|
||||
* @param string $message
|
||||
* @param string $level
|
||||
* @param bool $saveInSession
|
||||
*/
|
||||
public function addMessage(string $message, string $level = self::INFO, bool $saveInSession = true): void
|
||||
{
|
||||
$colorChart = [
|
||||
'green' => self::SUCCESS,
|
||||
'success' => self::SUCCESS,
|
||||
'yellow' => self::WARNING,
|
||||
'warning' => self::WARNING,
|
||||
'red' => self::ERROR,
|
||||
'error' => self::ERROR,
|
||||
'danger' => self::ERROR,
|
||||
'info' => self::INFO,
|
||||
'blue' => self::INFO,
|
||||
'default' => '',
|
||||
];
|
||||
public function warning(
|
||||
string $message,
|
||||
bool $saveInSession = true
|
||||
): void {
|
||||
$this->addMessage($message, FlashLevels::Warning, $saveInSession);
|
||||
}
|
||||
|
||||
public function error(
|
||||
string $message,
|
||||
bool $saveInSession = true
|
||||
): void {
|
||||
$this->addMessage($message, FlashLevels::Error, $saveInSession);
|
||||
}
|
||||
|
||||
public function info(
|
||||
string $message,
|
||||
bool $saveInSession = true
|
||||
): void {
|
||||
$this->addMessage($message, FlashLevels::Info, $saveInSession);
|
||||
}
|
||||
|
||||
public function addMessage(
|
||||
string $message,
|
||||
FlashLevels $level = FlashLevels::Info,
|
||||
bool $saveInSession = true
|
||||
): void {
|
||||
$messageRow = [
|
||||
'text' => $message,
|
||||
'color' => $colorChart[$level] ?? $level,
|
||||
'color' => $level->value,
|
||||
];
|
||||
|
||||
$this->getMessages();
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Session;
|
||||
|
||||
enum FlashLevels: string
|
||||
{
|
||||
case Success = 'success';
|
||||
case Warning = 'warning';
|
||||
case Error = 'danger';
|
||||
case Info = 'info';
|
||||
}
|
Loading…
Reference in New Issue