coolify/app/Livewire/Notifications/Concerns/TogglesNotificationEvents.php
Andras Bacsai d85a7800fa feat(notifications): allow toggling restart-limit email events
Add restartLimitReached to the notification event toggle list so admins can disable restart-limit email notifications. Cover the toggle with an authorization test.
2026-09-10 09:06:17 +02:00

38 lines
1,018 B
PHP

<?php
namespace App\Livewire\Notifications\Concerns;
trait TogglesNotificationEvents
{
private const NOTIFICATION_EVENT_KEYS = [
'deploymentSuccess',
'deploymentFailure',
'statusChange',
'restartLimitReached',
'backupSuccess',
'backupFailure',
'scheduledTaskSuccess',
'scheduledTaskFailure',
'dockerCleanupSuccess',
'dockerCleanupFailure',
'serverDiskUsage',
'serverReachable',
'serverUnreachable',
'serverPatch',
'traefikOutdated',
];
public function toggleEvent(string $property): void
{
$channel = class_basename(static::class);
$allowedProperties = array_map(
static fn (string $event): string => $event.$channel.'Notifications',
self::NOTIFICATION_EVENT_KEYS,
);
abort_unless(in_array($property, $allowedProperties, true), 404);
$this->{$property} = ! $this->{$property};
$this->saveModel();
}
}