/** * @param \Doctrine\ORM\EntityManager $em * @param array $parameters */ public function __construct(EntityManager $em, array $parameters) { $this->em = $em; $this->parameters = $parameters; $this->folderRepo = $this->em->getRepository('JccAlbumBundle:Folder'); $this->pictureRepo = $this->em->getRepository('JccAlbumBundle:Picture'); }
/** * Get the good User Entity. * * @param UserInterface $user * @return UserInterface */ private function getUserEntity(UserInterface $user) { return $this->em->getRepository($this->repoUser)->findOneBy(array('username' => $user->getUsername())); }
public function mergeUsers($user1, $user2) { //Merge old camdram auth tokens $tokens = $this->em->getRepository('ActsCamdramBundle:Access')->findBy(array('uid' => $user2->getId())); foreach ($tokens as $token) { $token->setUid($user1->getId()); } $this->em->flush(); $tokens = $this->em->getRepository('ActsCamdramBundle:Access')->findBy(array('issuer_id' => $user2->getId())); foreach ($tokens as $token) { $token->setIssuerId($user1->getId()); } $this->em->flush(); $tokens = $this->em->getRepository('ActsCamdramBundle:Access')->findBy(array('revoke_id' => $user2->getId())); foreach ($tokens as $token) { $token->setRevokeId($user1->getId()); } $this->em->flush(); //Merge emails $emails = $this->em->getRepository('ActsCamdramBundle:Email')->findBy(array('user_id' => $user2->getId())); foreach ($emails as $email) { $email->setUserId($user1->getId()); } $this->em->flush(); //Merge email aliases $aliases = $this->em->getRepository('ActsCamdramBundle:EmailAlias')->findBy(array('user_id' => $user2->getId())); foreach ($aliases as $alias) { $alias->setUserId($user1->getId()); } $this->em->flush(); //Merge email sigs $sigs = $this->em->getRepository('ActsCamdramBundle:EmailSig')->findBy(array('user_id' => $user2->getId())); foreach ($sigs as $sig) { $sig->setUserId($user1->getId()); } $this->em->flush(); //Merge forum messages $msgs = $this->em->getRepository('ActsCamdramBundle:EmailSig')->findBy(array('user_id' => $user2->getId())); foreach ($msgs as $msg) { $msg->setUserId($user1->getId()); } $this->em->flush(); //Merge knowledge base $kbs = $this->em->getRepository('ActsCamdramBundle:KnowledgeBaseRevision')->findBy(array('user_id' => $user2->getId())); foreach ($kbs as $kb) { $kb->setUserId($user1->getId()); } $this->em->flush(); //Merge mailing list members $r = $this->em->getRepository('ActsCamdramBundle:MailingListMember'); $members = $r->findBy(array('user_id' => $user2->getId())); foreach ($members as $member) { if ($r->findOneBy(array('list_id' => $member->getListId(), 'user_id' => $user1->getId()))) { $this->em->remove($member); } else { $member->setUserId($user1->getId()); } } $this->em->flush(); //Merge reviews $reviews = $this->em->getRepository('ActsCamdramBundle:Review')->findBy(array('user_id' => $user2->getId())); foreach ($reviews as $review) { $review->setUserId($user1->getId()); } $this->em->flush(); //Merge user identities $identities = $this->em->getRepository('ActsCamdramSecurityBundle:UserIdentity')->findBy(array('user' => $user2)); foreach ($identities as $identity) { $identity->setUser($user1); } $this->em->flush(); if ($user2->getPerson() && !$user1->getPerson()) { $user1->setPerson($user2->getPerson()); } $this->em->remove($user2); $this->em->flush(); }