public function findByUsernameAndPassword($email, $password)
 {
     /** @var $user \Application\Entity\WcUser */
     $user = $this->findOneByEmail($email);
     if (!$user) {
         $user = $this->findOneByUsername($email);
     }
     if ($user) {
         if ((new Bcrypt())->verify($password, $user->getPassword())) {
             if ($user->getStatus() == 0) {
                 return FALSE;
             }
             return $user;
         } else {
             if ($this->cryptSenha(['email' => $email, 'password' => $password]) == $user->getPassword()) {
                 $entity = $this->_em->getReference('Application\\Entity\\WcUser', $user->getId());
                 $data['userUpdated'] = $this->_em->getRepository('Application\\Entity\\WcUser')->find($user->getId());
                 $WcUser = new WcUser();
                 $WcUser->setUsername($email);
                 $hydrator = new ClassMethods();
                 $data = ['username' => $email, 'salt' => $WcUser->getSalt(), 'activationKey' => $WcUser->getActivationKey()];
                 $hydrator->hydrate($data, $entity);
                 $this->_em->persist($entity);
                 $this->_em->flush();
                 if ($user->getStatus() == 0) {
                     return FALSE;
                 }
                 return $entity;
             } else {
                 return FALSE;
             }
         }
     } else {
         return FALSE;
     }
 }
 public function getArraySession(WcUser $user)
 {
     $arraySession = ['id' => $user->getId(), 'firstname' => $user->getFirstname(), 'lastname' => $user->getLastname(), 'email' => $user->getEmail(), 'level' => $user->getLevel(), 'status' => $user->getStatus(), 'owner' => ['id' => $user->getOwner()->getId(), 'firstname' => $user->getOwner()->getFirstname(), 'lastname' => $user->getOwner()->getLastname(), 'email' => $user->getOwner()->getEmail()], 'language' => ['id' => $user->getLanguage()->getId(), 'name' => $user->getLanguage()->getName(), 'flag' => $user->getLanguage()->getFlag(), 'abbreviation' => $user->getLanguage()->getAbbreviation()], 'created_at' => $user->getCreatedAt()->format('Y-m-d H:i:s'), 'updated_at' => $user->getUpdatedAt()->format('Y-m-d H:i:s'), 'user_created' => ['id' => $user->getUserCreated() ? $user->getUserCreated()->getId() : '', 'firstname' => $user->getUserCreated() ? $user->getUserCreated()->getFirstname() : '', 'lastname' => $user->getUserCreated() ? $user->getUserCreated()->getLastname() : '', 'email' => $user->getUserCreated() ? $user->getUserCreated()->getEmail() : ''], 'user_updated' => ['id' => $user->getUserUpdated() ? $user->getUserUpdated()->getId() : '', 'firstname' => $user->getUserUpdated() ? $user->getUserUpdated()->getFirstname() : '', 'lastname' => $user->getUserUpdated() ? $user->getUserUpdated()->getLastname() : '', 'email' => $user->getUserUpdated() ? $user->getUserUpdated()->getEmail() : '']];
     $object = new ClassMethods();
     /** @var \Auth\Service\AuthUserEntity $authUserEntity */
     $authUserEntity = new AuthUserEntity();
     $object->hydrate($arraySession, $authUserEntity);
     return $authUserEntity;
 }
 /**
  * {@inheritDoc}
  */
 public function setOwner(\Application\Entity\WcUser $owner = NULL)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setOwner', array($owner));
     return parent::setOwner($owner);
 }