forked from fa/breadcrumb-the-shire
NotificationsAuthorizationPolicy was never registered in the container, so ModuleClassResolver could not instantiate it (requires PermissionService). This silently prevented the notifications.view permission from being granted, hiding the bell icon in the topbar. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
70 lines
3.6 KiB
PHP
70 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace MintyPHP\Module\Notifications;
|
|
|
|
use MintyPHP\App\AppContainer;
|
|
use MintyPHP\App\Container\ContainerRegistrar;
|
|
use MintyPHP\Module\Notifications\Handler\NotificationCleanupJobHandler;
|
|
use MintyPHP\Module\Notifications\Listeners\UserActivatedNotificationListener;
|
|
use MintyPHP\Module\Notifications\Listeners\UserAssignmentChangedNotificationListener;
|
|
use MintyPHP\Module\Notifications\Listeners\UserCreatedNotificationListener;
|
|
use MintyPHP\Module\Notifications\Listeners\UserDeactivatedNotificationListener;
|
|
use MintyPHP\Module\Notifications\Listeners\UserDeletedNotificationListener;
|
|
use MintyPHP\Module\Notifications\Service\NotificationRepositoryFactory;
|
|
use MintyPHP\Module\Notifications\Service\NotificationService;
|
|
use MintyPHP\Module\Notifications\Service\NotificationServicesFactory;
|
|
use MintyPHP\Repository\Tenant\UserTenantRepository;
|
|
use MintyPHP\Repository\User\UserReadRepository;
|
|
use MintyPHP\Service\Access\PermissionService;
|
|
|
|
final class NotificationsContainerRegistrar implements ContainerRegistrar
|
|
{
|
|
public function register(AppContainer $container): void
|
|
{
|
|
$container->set(NotificationsAuthorizationPolicy::class, static fn (AppContainer $c): NotificationsAuthorizationPolicy => new NotificationsAuthorizationPolicy(
|
|
$c->get(PermissionService::class)
|
|
));
|
|
$container->set(NotificationRepositoryFactory::class, static fn (): NotificationRepositoryFactory => new NotificationRepositoryFactory());
|
|
|
|
$container->set(NotificationServicesFactory::class, static fn (AppContainer $c): NotificationServicesFactory => new NotificationServicesFactory(
|
|
$c->get(NotificationRepositoryFactory::class)
|
|
));
|
|
|
|
$container->set(NotificationService::class, static fn (AppContainer $c): NotificationService => $c->get(NotificationServicesFactory::class)->createNotificationService(
|
|
$c->get(UserTenantRepository::class)
|
|
));
|
|
|
|
$container->set(NotificationCleanupJobHandler::class, static fn (AppContainer $c): NotificationCleanupJobHandler => new NotificationCleanupJobHandler(
|
|
$c->get(NotificationService::class)
|
|
));
|
|
|
|
$container->set(UserCreatedNotificationListener::class, static fn (AppContainer $c): UserCreatedNotificationListener => new UserCreatedNotificationListener(
|
|
$c->get(NotificationService::class),
|
|
$c->get(UserReadRepository::class),
|
|
$c->get(UserTenantRepository::class)
|
|
));
|
|
|
|
$container->set(UserDeletedNotificationListener::class, static fn (AppContainer $c): UserDeletedNotificationListener => new UserDeletedNotificationListener(
|
|
$c->get(NotificationService::class),
|
|
$c->get(UserReadRepository::class)
|
|
));
|
|
|
|
$container->set(UserActivatedNotificationListener::class, static fn (AppContainer $c): UserActivatedNotificationListener => new UserActivatedNotificationListener(
|
|
$c->get(NotificationService::class),
|
|
$c->get(UserReadRepository::class),
|
|
$c->get(UserTenantRepository::class)
|
|
));
|
|
|
|
$container->set(UserDeactivatedNotificationListener::class, static fn (AppContainer $c): UserDeactivatedNotificationListener => new UserDeactivatedNotificationListener(
|
|
$c->get(NotificationService::class),
|
|
$c->get(UserReadRepository::class),
|
|
$c->get(UserTenantRepository::class)
|
|
));
|
|
|
|
$container->set(UserAssignmentChangedNotificationListener::class, static fn (AppContainer $c): UserAssignmentChangedNotificationListener => new UserAssignmentChangedNotificationListener(
|
|
$c->get(NotificationService::class),
|
|
$c->get(UserReadRepository::class)
|
|
));
|
|
}
|
|
}
|