<?php
namespace Globunet\UserBundle\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use FOS\UserBundle\Event\UserEvent;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Mailer\MailerInterface;
use FOS\UserBundle\Util\TokenGeneratorInterface;
use Globunet\CoreBundle\Util\Util;
class EmailUserCreatedListener implements EventSubscriberInterface
{
private $mailer;
/**
* EmailConfirmationListener constructor.
*
* @param MailerInterface $mailer
* @param TokenGeneratorInterface $tokenGenerator
*/
public function __construct(MailerInterface $mailer)
{
$this->mailer = $mailer;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return array(
FOSUserEvents::USER_CREATED => 'onCreatedSuccess',
);
}
/**
* @param FormEvent $event
*/
public function onCreatedSuccess(UserEvent $event)
{
/** @var $user \FOS\UserBundle\Model\UserInterface */
$user = $event->getUser();
$request = $event->getRequest();
if($request != null){
$parameters = $request->request->all();
$password = Util::elementSearch( $parameters, 'first', 'key');
//$password = ($parameters && $parameters['plainPassword'] && $parameters['plainPassword']['first'])?$parameters['plainPassword']['first']:"";
$data = $request->query->all();
if(!array_key_exists("password", $data)){
$data["password"] = $password;
}
$data["username"] = $user->getUsername();
$data["email"] = $user->getEmail();
$this->mailer->sendCreatedEmailMessage($data);
}
}
}