Exemplo n.º 1
0
 /**
  * 
  * @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());
 }