js(__DIR__.'/js/dist/forum.js') ->css(__DIR__.'/less/forum.less'), (new Extend\Frontend('admin')) ->js(__DIR__.'/js/dist/admin.js') ->css(__DIR__.'/less/admin.less'), (new Extend\Model(User::class)) ->dateAttribute('suspended_until'), new Extend\Locales(__DIR__.'/locale'), function (Dispatcher $events) { $events->subscribe(Listener\AddUserSuspendAttributes::class); $events->subscribe(Listener\RevokeAccessFromSuspendedUsers::class); $events->listen(Saving::class, Listener\SaveSuspensionToDatabase::class); $events->listen(ConfigureNotificationTypes::class, function (ConfigureNotificationTypes $event) { $event->add(UserSuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email']); $event->add(UserUnsuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email']); }); $events->listen(Suspended::class, Listener\SendNotificationWhenUserIsSuspended::class); $events->listen(Unsuspended::class, Listener\SendNotificationWhenUserIsUnsuspended::class); $events->subscribe(Access\UserPolicy::class); $events->listen(ConfigureUserGambits::class, function (ConfigureUserGambits $event) { $event->gambits->add(SuspendedGambit::class); }); } ];