/** * * @param \App\FrontendBundle\Utils\Session\CreditCreator $objCreator * @return \App\GuardBundle\Entity\GuardUser */ public function getUserForCredit(CreditCreator $objCreator) { /** * Zwraca zalogowanego usera */ if ($this->getUser() instanceof \App\GuardBundle\Entity\GuardUser) { if ($this->getUser()->hasRole(\App\GuardBundle\Entity\GuardUser::ROLE_LENDER)) { $objCreator->addError('Osoba zalogowania jako pożyczkodawca nie może wziąć pożyczki'); return null; } return $this->getUser(); } $m = $this->getDoctrine()->getManager(); /** * Sprawdza czy istnieje user o podanym emailu i username */ /* @var $activeUser \App\GuardBundle\Entity\GuardUser */ $activeUser = $m->getRepository('AppGuardBundle:GuardUser')->findOneBy(array('username' => $objCreator->getUsername(), 'email' => $objCreator->getEmail())); if ($activeUser instanceof \App\GuardBundle\Entity\GuardUser) { $encoder_service = $this->get('security.encoder_factory'); $encoder = $encoder_service->getEncoder($activeUser); $encoded_pass = $encoder->encodePassword($objCreator->getPassword(), $activeUser->getSalt()); if ($activeUser->getPassword() !== $encoded_pass) { $objCreator->addError('Hasło jest niepoprawne'); return null; } if ($activeUser->hasRole(\App\GuardBundle\Entity\GuardUser::ROLE_LENDER)) { $objCreator->addError('Nie można użyć tych danych do wzięcia pożyczki. Użytkownik jest pożyczkodawcą'); return null; } if (!$activeUser->hasRole(\App\GuardBundle\Entity\GuardUser::ROLE_BORROWER)) { $objCreator->addError('Nie można użyć tych danych do wzięcia pożyczki.'); return null; } return $activeUser; } $activeUser = $m->getRepository('AppGuardBundle:GuardUser')->findOneBy(array('username' => $objCreator->getUsername())); if ($activeUser instanceof \App\GuardBundle\Entity\GuardUser) { $objCreator->addError('Adres email lub nick jest niepoprawny'); return null; } $activeUser = $m->getRepository('AppGuardBundle:GuardUser')->findOneBy(array('email' => $objCreator->getEmail())); if ($activeUser instanceof \App\GuardBundle\Entity\GuardUser) { $objCreator->addError('Adres email lub nick jest niepoprawny'); return null; } $caller = $this->get('api_caller'); $arrParams = array('username' => $objCreator->getUsername(), 'password' => $objCreator->getPassword(), 'email' => $objCreator->getEmail(), 'roles' => array(\App\GuardBundle\Entity\GuardUser::ROLE_BORROWER, \App\GuardBundle\Entity\GuardUser::ROLE_DEFAULT)); $url = $this->generateUrl("post_user", $arrParams, true); $objHttp = new \Lsw\ApiCallerBundle\Call\HttpPostJson($url, array()); $data = $caller->call($objHttp); $objCreator->setIsNew(TRUE); return $m->getRepository('AppGuardBundle:GuardUser')->findOneByUsername($objCreator->getUsername()); }