'LoginNotify/UserAvatar.svg' ]; $notificationCategories['login-fail'] = [ 'priority' => 7, 'tooltip' => 'echo-pref-tooltip-login-fail', ]; $loginBase = [ EchoAttributeManager::ATTR_LOCATORS => [ [ [ EchoUserLocator::class, 'locateArticleCreator' ] ], ], 'canNotifyAgent' => true, 'category' => 'login-fail', 'group' => 'negative', 'presentation-model' => PresentationModel::class, // fixme, what does this actually do? 'title-message' => 'loginnotify-login-fail', 'title-params' => [], // FIXME Should count be a parameter 'email-subject-params' => [ 'agent', 'count' ], 'email-body-batch-params' => [ 'agent', 'count' ], // FIXME is it ok not to set batch email messages, since // we have immediate flag? 'icon' => 'LoginNotify-user-avatar', 'immediate' => true, ]; $notifications['login-fail-new'] = [ 'bundle' => [ 'web' => true, 'expandable' => false ] ] + $loginBase; $notifications['login-fail-known'] = [ 'bundle' => [ 'web' => true, 'expandable' => false ] ] + $loginBase; if ( $wgLoginNotifyEnableOnSuccess ) { $notificationCategories['login-success'] = [ 'priority' => 7, 'tooltip' => 'echo-pref-tooltip-login-success', ]; $notifications['login-success'] = [ 'category' => 'login-success', ] + $loginBase; $wgNotifyTypeAvailabilityByCategory['login-success'] = [ 'web' => false, 'email' => true, ]; } } /** * @param EchoEvent $event * @param string &$bundleString */ public function onEchoGetBundleRules( EchoEvent $event, string &$bundleString ) { switch ( $event->getType() ) { case 'login-fail-new': $bundleString = 'login-fail'; break; } } }