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; }
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(); }