registerCapability(Capabilities::class); // notification service $context->registerNotifierService(Notifier::class); // User Events $context->registerEventListener(UserCreatedEvent::class, UserCreated::class); $context->registerEventListener(UserUpdatedEvent::class, AccountUpdated::class); $context->registerEventListener(UserChangedEvent::class, AccountUpdated::class); $context->registerEventListener(UserDeletedEvent::class, UserDeleted::class); // Group Events $context->registerEventListener(GroupCreatedEvent::class, GroupCreated::class); $context->registerEventListener(GroupChangedEvent::class, GroupChanged::class); $context->registerEventListener(GroupDeletedEvent::class, GroupDeleted::class); $context->registerEventListener(UserAddedEvent::class, GroupMemberAdded::class); $context->registerEventListener(UserRemovedEvent::class, GroupMemberRemoved::class); // Local Events (for Files/Shares/Notifications management) $context->registerEventListener(PreparingCircleMemberEvent::class, ListenerFilesPreparingMemberSendMail::class); $context->registerEventListener(AddingCircleMemberEvent::class, ListenerFilesAddingMemberSendMail::class); $context->registerEventListener(AddingCircleMemberEvent::class, ListenerNotificationsRequestingMember::class); $context->registerEventListener(CircleMemberAddedEvent::class, ListenerFilesMemberAddedSendMail::class); $context->registerEventListener(PreparingFileShareEvent::class, ListenerFilesPreparingShareSendMail::class); $context->registerEventListener(CreatingFileShareEvent::class, ListenerFilesCreatingShareSendMail::class); $context->registerEventListener(FileShareCreatedEvent::class, ListenerFilesShareCreatedSendMail::class); $context->registerEventListener(RemovingCircleMemberEvent::class, ListenerFilesRemovingMember::class); $context->registerEventListener(RequestingCircleMemberEvent::class, ListenerNotificationsRequestingMember::class); $context->registerEventListener(DestroyingCircleEvent::class, ListenerFilesDestroyingCircle::class); $context->registerSearchProvider(UnifiedSearchProvider::class); $context->registerWellKnownHandler(WebfingerHandler::class); $context->registerDashboardWidget(TeamDashboardWidget::class); $context->registerTeamResourceProvider(FileSharingTeamResourceProvider::class); $context->registerConfigLexicon(ConfigLexicon::class); } /** * @param IBootContext $context * * @throws Throwable */ public function boot(IBootContext $context): void { $serverContainer = $context->getServerContainer(); $context->injectFn(function (IShareManager $shareManager) { $shareManager->registerShareProvider(ShareByCircleProvider::class); }); $this->configService = $context->getAppContainer() ->get(ConfigService::class); $context->injectFn(Closure::fromCallable([$this, 'registerMountProvider'])); } public function registerMountProvider(IServerContainer $container) { if (!$this->configService->isGSAvailable()) { return; } $mountProviderCollection = $container->get(IMountProviderCollection::class); $mountProviderCollection->registerProvider($container->get(CircleMountProvider::class)); } }