Browse Source

Issue #142 - New package maintainers will be notified by email.

Otar Chekurishvili 11 years ago
parent
commit
d0ec01174a

+ 1 - 0
src/Packagist/WebBundle/Controller/WebController.php

@@ -751,6 +751,7 @@ class WebController extends Controller
                     if (!empty($user)) {
                         if (!$package->getMaintainers()->contains($user)) {
                             $package->addMaintainer($user);
+                            $this->get('packagist.package_manager')->notifyNewMaintainer($user, $package);
                         }
 
                         $em->persist($package);

+ 26 - 0
src/Packagist/WebBundle/Model/PackageManager.php

@@ -76,6 +76,32 @@ class PackageManager
             $this->em->flush();
         }
 
+
         return true;
     }
+
+    public function notifyNewMaintainer($user, $package)
+    {
+        $body = $this->twig->render('PackagistWebBundle:Email:maintainer_added.txt.twig', array(
+            'package_name' => $package->getName()
+        ));
+echo $user->getEmail();
+        $message = \Swift_Message::newInstance()
+            ->setSubject('You\'ve been added to ' . $package->getName() . ' as a maintainer')
+            ->setFrom($this->options['from'], $this->options['fromName'])
+            ->setTo($user->getEmail())
+            ->setBody($body)
+        ;
+
+        try {
+            $this->mailer->send($message);
+        } catch (\Swift_TransportException $e) {
+            $this->logger->err('['.get_class($e).'] '.$e->getMessage());
+
+            return FALSE;
+        }
+
+        return TRUE;
+    }
+
 }

+ 5 - 0
src/Packagist/WebBundle/Resources/views/Email/maintainer_added.txt.twig

@@ -0,0 +1,5 @@
+{% autoescape false -%}
+
+You've been added to package <a href="{{ path('view_package', { 'name': package_name }) }}">{{ package_name }}</a> as a maintainer.
+
+{%- endautoescape %}