[MAIL] Make mailserver a required service
This commit is contained in:
		
							
								
								
									
										5
									
								
								bin/configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								bin/configure
									
									
									
									
										vendored
									
									
								
							| @@ -50,7 +50,9 @@ EOF | ||||
|  | ||||
| fi | ||||
|  | ||||
| echo "${database_url}" > .env.local | ||||
| echo "${database_url}" >> .env.local | ||||
|  | ||||
| printf "Mailer dsn: " && read -r mailer_dsn | ||||
|  | ||||
| mkdir -p ./docker/social | ||||
|  | ||||
| @@ -65,4 +67,5 @@ SOCIAL_ADMIN_NICK="${admin_nick}" | ||||
| SOCIAL_ADMIN_PASSWORD="${admin_password}" | ||||
| SOCIAL_ADMIN_EMAIL="${email}" | ||||
| SOCIAL_SITE_PROFILE="${profile}" | ||||
| MAILER_DSN="${mailer_dsn}" | ||||
| EOF | ||||
|   | ||||
| @@ -47,9 +47,7 @@ use App\Core\DB\DefaultSettings; | ||||
| use App\Core\I18n\I18n; | ||||
| use App\Core\Queue\Queue; | ||||
| use App\Core\Router\Router; | ||||
| use App\Util\Common; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Exception; | ||||
| use Psr\Log\LoggerInterface; | ||||
| use Symfony\Component\Console\Event\ConsoleCommandEvent; | ||||
| use Symfony\Component\EventDispatcher\EventDispatcherInterface; | ||||
| @@ -58,6 +56,7 @@ use Symfony\Component\Form\FormFactoryInterface; | ||||
| use Symfony\Component\HttpFoundation\Session\SessionInterface; | ||||
| use Symfony\Component\HttpKernel\Event\RequestEvent; | ||||
| use Symfony\Component\HttpKernel\KernelEvents; | ||||
| use Symfony\Component\Mailer\MailerInterface; | ||||
| use Symfony\Component\Messenger\MessageBusInterface; | ||||
| use Symfony\Component\Routing\RouterInterface; | ||||
| use Symfony\Component\Security\Core\Security as SSecurity; | ||||
| @@ -77,6 +76,8 @@ class GNUsocial implements EventSubscriberInterface | ||||
|     protected EventDispatcherInterface $event_dispatcher; | ||||
|     protected SessionInterface         $session; | ||||
|     protected SSecurity                $security; | ||||
|     protected MailerInterface          $mailer; | ||||
|     protected ModuleManager            $module_manager; | ||||
|  | ||||
|     /** | ||||
|      * Symfony dependency injection gives us access to these services | ||||
| @@ -89,7 +90,9 @@ class GNUsocial implements EventSubscriberInterface | ||||
|                                 MessageBusInterface $mb, | ||||
|                                 EventDispatcherInterface $ed, | ||||
|                                 SessionInterface $sess, | ||||
|                                 SSecurity $sec) | ||||
|                                 SSecurity $sec, | ||||
|                                 MailerInterface $mail, | ||||
|                                 ModuleManager $mod) | ||||
|     { | ||||
|         $this->logger           = $logger; | ||||
|         $this->translator       = $trans; | ||||
| @@ -100,6 +103,8 @@ class GNUsocial implements EventSubscriberInterface | ||||
|         $this->event_dispatcher = $ed; | ||||
|         $this->session          = $sess; | ||||
|         $this->security         = $sec; | ||||
|         $this->mailer           = $mail; | ||||
|         $this->module_manager   = $mod; | ||||
|  | ||||
|         $this->initialize(); | ||||
|     } | ||||
| @@ -119,20 +124,13 @@ class GNUsocial implements EventSubscriberInterface | ||||
|         Form::setFactory($this->form_factory); | ||||
|         Queue::setMessageBus($this->message_bus); | ||||
|         Security::setHelper($this->security); | ||||
|         Mailer::setMailer($this->mailer); | ||||
|  | ||||
|         DefaultSettings::setDefaults(); | ||||
|  | ||||
|         // TODO use configuration properly | ||||
|         try { | ||||
|             if (Common::config('site', 'use_email')) { | ||||
|                 Mailer::setMailer($this->containen->get('mailer')); | ||||
|             } | ||||
|         } catch (Exception $e) { | ||||
|             // Table doesn't exist yet | ||||
|         } | ||||
|  | ||||
|         Cache::setupCache(); | ||||
|         ModulesManager::loadModules(); | ||||
|  | ||||
|         $this->module_manager->loadModules(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -32,21 +32,18 @@ | ||||
|  | ||||
| namespace App\Core; | ||||
|  | ||||
| use App\Util\Common; | ||||
| use Symfony\Component\Mailer\MailerInterface; | ||||
|  | ||||
| abstract class Mailer | ||||
| { | ||||
|     private MailerInterface $mailer; | ||||
|     private static MailerInterface $mailer; | ||||
|     public static function setMailer($m) | ||||
|     { | ||||
|         $this->mailer = $m; | ||||
|         self::$mailer = $m; | ||||
|     } | ||||
|  | ||||
|     public static function __callStatic(string $method, array $args) | ||||
|     { | ||||
|         if (Common::config('site', 'use_email')) { | ||||
|             return $this->{$method}(...$args); | ||||
|         } | ||||
|         return self::{$method}(...$args); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user