public function createProgenitor(Progenitor $progenitor, Mailer $mailer)
 {
     $dbProgenitor = $this->em->getRepository('AppBundle:Progenitor')->checkEmailExists($progenitor->getNewsletterUser()->getEmail());
     if ($dbProgenitor === null) {
         $progenitor->setUsername($progenitor->getNewsletterUser()->getEmail());
         $progenitor->setEmail($progenitor->getNewsletterUser()->getEmail());
         $progenitor->setPlainPassword('kinder2');
         $progenitor->setEnabled(true);
         $token = sha1(uniqid(mt_rand(), true));
         // Or whatever you prefer to generate a token
         $progenitor->setConfirmationToken($token);
         $this->em->persist($progenitor);
         $this->em->flush();
         $mailer->sendConfirmationEmailMessage($progenitor);
         return $progenitor->getId();
     }
     return;
 }
Example #2
0
 public function removeUser(Progenitor $user)
 {
     $user->removeRole($this);
     $this->users->removeElement($user);
 }
 public function updateProgenitorRelations(Progenitor $progenitor)
 {
     $newsletterUser = $progenitor->getNewsletterUser();
     $toRemoveGroups = array();
     $toAddGroups = array();
     $newsletterGroups = $newsletterUser->getUserGroups();
     foreach ($newsletterGroups as $group) {
         $toRemoveGroups[$group->getId()] = $group;
     }
     foreach ($progenitor->getEstudiantes() as $estudiante) {
         $toAddGroupsAux = $this->getNewsletterGroupsOfStudent($estudiante);
         foreach ($toAddGroupsAux as $key => $value) {
             $toAddGroups[$key] = $value;
         }
     }
     $addKeys = array_keys($toAddGroups);
     foreach ($addKeys as $key) {
         if (isset($toRemoveGroups[$key])) {
             unset($toRemoveGroups[$key]);
             unset($toAddGroups[$key]);
         }
     }
     foreach ($toRemoveGroups as $group) {
         $newsletterUser->removeUserGroup($group);
     }
     foreach ($toAddGroups as $group) {
         $newsletterUser->addUserGroup($group);
     }
     $this->em->persist($newsletterUser);
     $this->em->flush();
 }