public function createAction() { $userForm = new UserForm(); $request = $this->getRequest(); if ($request->isPost()) { $userForm->setInputFilter(new UserFilter()); $userForm->setData($request->getPost()); if ($userForm->isValid()) { $entityManager = $this->getEntityManager(); $data = $userForm->getData(); $user = new User(); $pass = UserService::encryptPassword($data['user_password']); $user->setUserName($data['user_name'])->setUserPassword($pass['password'])->setUserPasswordSalt($pass['password_salt'])->setUserActive(true); $entityManager->persist($user); $entityManager->flush(); return $this->redirect()->toRoute('authentication/user', array('action' => 'index')); } } return new ViewModel(array('form' => $userForm)); }
/** * Static function for checking hashed password (as required by Doctrine) * * @param User $user The identity object * @param string $passwordGiven Password provided to be verified * @return boolean true if the password was correct, else, returns false */ public static function verifyHashedPassword(User $user, $passwordGiven) { $bcrypt = new Bcrypt(array('cost' => 10)); $bcrypt->setSalt($user->getUserPasswordSalt()); return $bcrypt->verify($passwordGiven, $user->getUserPassword()); }
/** * Busca pelo usuário da inscrição $id. Caso não exista cria um novo. * * @param Person $person pessoa associada à inscrição * @return User */ protected function getUserIfExistsCreateIfNotExists(Person $person) { $em = $this->getEntityManager(); // se não possui usuário if ($person->getUser() === null) { $user = new User(); $userName = $person->getPersonEmail(); $userPassword = preg_replace('/[.,-]/', '', $person->getPersonCpf()); $pass = UserService::encryptPassword($userPassword); $user->setUserName($userName)->setUserPassword($pass['password'])->setUserPasswordSalt($pass['password_salt'])->setUserActive(true); $person->setUser($user); $em->merge($person); return $user; } return $person->getUser(); }