[ ], ]; /** * Register any other events for your application. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function boot() { parent::boot(); Event::listen(UserEmailVerified::class, function($event) { $repository = App::make(IUserRepository::class); $user = $repository->getById($event->getUserId()); if(is_null($user)) return; Mail::queue(new UserEmailVerificationSuccess($user)); }); Event::listen(UserCreated::class, function($event) { $repository = App::make(IUserRepository::class); $user = $repository->getById($event->getUserId()); if(is_null($user)) return; if(! $user instanceof User) return; $user_service = App::make(IUserService::class); $user_service->generateIdentifier($user); Mail::queue(new WelcomeNewUserEmail($user)); if(!$user->isEmailVerified() && !$user->hasCreator()) $user_service->sendVerificationEmail($user); try { if(Config::get("queue.enable_message_broker", false) == true) PublishUserCreated::dispatch($user)->onConnection('message_broker'); } catch (\Exception $ex){ Log::warning($ex); } }); Event::listen(UserSpamStateUpdated::class, function($event) { $repository = App::make(IUserRepository::class); $user = $repository->getById($event->getUserId()); if(is_null($user)) return; if(! $user instanceof User) return; $user_service = App::make(IUserService::class); $user_service->recalculateUserSpamType($user); }); Event::listen(UserEmailUpdated::class, function($event) { $repository = App::make(IUserRepository::class); $user = $repository->getById($event->getUserId()); if(is_null($user)) return; if(! $user instanceof User) return; $user_service = App::make(IUserService::class); $user_service->sendVerificationEmail($user); }); Event::listen(UserPasswordResetRequestCreated::class, function($event){ $repository = App::make(IUserPasswordResetRequestRepository::class); $request = $repository->find($event->getUserId()); if(is_null($request)) return; }); Event::listen(UserLocked::class, function($event){ $repository = App::make(IUserRepository::class); $user = $repository->getById($event->getUserId()); if(is_null($user)) return; if(!$user instanceof User) return; $support_email = Config::get("mail.support_email", null); if(!empty($support_email)) { $attempts = $user->getLoginFailedAttempt(); Mail::queue(new UserLockedEmail($user, $support_email, $attempts)); } }); Event::listen(UserPasswordResetSuccessful::class, function($event){ $repository = App::make(IUserRepository::class); $user = $repository->getById($event->getUserId()); if(is_null($user)) return; if(!$user instanceof User) return; Mail::queue(new UserPasswordResetMail($user)); }); Event::listen(OAuth2ClientLocked::class, function($event){ $repository = App::make(IClientRepository::class); $client = $repository->getClientById($event->getClientId()); if(is_null($client)) return; if(!$client instanceof Client) return; Mail::queue(new \App\Mail\OAuth2ClientLocked($client)); }); Event::listen(\Illuminate\Mail\Events\MessageSending::class, function($event){ $devEmail = env('DEV_EMAIL_TO', null); if(in_array(App::environment(), ['local','dev','testing']) && !empty($devEmail)){ $event->message->setTo(explode(",", $devEmail)); } return true; }); } }