/** * @dataProvider encodeUserProvider */ public function testEncodeUser($userName, $email, $plainPassword) { $user = new User(); $user->setUserName($userName); $user->setEmail($email); $user->setPlainPassword($plainPassword); Kernel::getService("em")->persist($user); Kernel::getService("em")->flush(); $this->assertTrue($user->getHandler()->isPasswordValid($plainPassword)); Kernel::getService("em")->remove($user); Kernel::getService("em")->flush(); }
/** * * @param User $user * * @return \Symfony\Component\Form\Form */ protected function buildEditSecurityForm(User $user) { $defaults = ['enabled' => $user->isEnabled(), 'locked' => !$user->isAccountNonLocked(), 'expiresAt' => $user->getExpiresAt(), 'expired' => $user->getExpired(), 'credentialsExpiresAt' => $user->getCredentialsExpiresAt(), 'credentialsExpired' => $user->getCredentialsExpired(), 'chroot' => $user->getChroot() !== null ? $user->getChroot()->getId() : null]; $builder = $this->getService('formFactory')->createNamedBuilder('source', 'form', $defaults); $builder->add('enabled', 'checkbox', ['label' => 'user.enabled', 'required' => false])->add('locked', 'checkbox', ['label' => 'user.locked', 'required' => false])->add('expiresAt', 'datetime', ['label' => 'user.expiresAt', 'required' => false, 'years' => range(date('Y'), date('Y') + 2), 'placeholder' => ['year' => 'year', 'month' => 'month', 'day' => 'day', 'hour' => 'hour', 'minute' => 'minute']])->add('expired', 'checkbox', ['label' => 'user.force.expired', 'required' => false])->add('credentialsExpiresAt', 'datetime', ['label' => 'user.credentialsExpiresAt', 'required' => false, 'years' => range(date('Y'), date('Y') + 2), 'placeholder' => ['year' => 'year', 'month' => 'month', 'day' => 'day', 'hour' => 'hour', 'minute' => 'minute']])->add('credentialsExpired', 'checkbox', ['label' => 'user.force.credentialsExpired', 'required' => false]); if ($this->isGranted("ROLE_SUPERADMIN")) { $n = $user->getChroot(); $n = $n !== null ? [$n] : []; $builder->add('chroot', new \RZ\Roadiz\CMS\Forms\NodesType($n, $this->getService('em')), ['label' => 'chroot', 'required' => false]); } return $builder->getForm(); }
/** * @param RZ\Roadiz\Core\Entities\User $user * * @return \Symfony\Component\Form\Form */ private function buildDeleteForm(User $user) { $builder = $this->createFormBuilder()->add('userId', 'hidden', ['data' => $user->getId(), 'constraints' => [new NotBlank()]]); return $builder->getForm(); }
/** * @param RZ\Roadiz\Core\Entities\User $user * @param RZ\Roadiz\Core\Entities\Group $group * * @return \Symfony\Component\Form\Form */ private function buildRemoveGroupForm(User $user, Group $group) { $builder = $this->createFormBuilder()->add('userId', 'hidden', ['data' => $user->getId(), 'constraints' => [new NotBlank()]])->add('groupId', 'hidden', ['data' => $group->getId(), 'constraints' => [new NotBlank()]]); return $builder->getForm(); }
/** * @param string $username * @param InputInterface $input * @param OutputInterface $output * * @return RZ\Roadiz\Core\Entities\User */ private function executeUserCreation($username, InputInterface $input, OutputInterface $output) { $user = new User(); $user->setUsername($username); do { $questionEmail = new Question('<question>Email</question> : ', ''); $email = $this->questionHelper->ask($input, $output, $questionEmail); } while (!filter_var($email, FILTER_VALIDATE_EMAIL) || $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\User')->emailExists($email)); $user->setEmail($email); $questionBack = new ConfirmationQuestion('<question>Is user a backend user?</question> : ', false); if ($this->questionHelper->ask($input, $output, $questionBack)) { $user->addRole($this->getRole(Role::ROLE_BACKEND_USER)); } $questionAdmin = new ConfirmationQuestion('<question>Is user a super-admin user?</question> : ', false); if ($this->questionHelper->ask($input, $output, $questionAdmin)) { $user->addRole($this->getRole(Role::ROLE_SUPERADMIN)); } $this->entityManager->persist($user); $user->getViewer()->sendSignInConfirmation(); $this->entityManager->flush(); $text = '<info>User “' . $username . '”<' . $email . '> created…</info>' . PHP_EOL; $text .= '<info>Password “' . $user->getPlainPassword() . '”.</info>' . PHP_EOL; $output->writeln($text); return $user; }
/** * @param array $data * * @return boolean */ public function createDefaultUser($data) { $existing = $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\User')->findOneBy(['username' => $data['username'], 'email' => $data['email']]); if ($existing === null) { $user = new User(); $user->setUsername($data['username']); $user->setPlainPassword($data['password']); $user->setEmail($data['email']); $url = "http://www.gravatar.com/avatar/" . md5(strtolower(trim($user->getEmail()))) . "?d=identicon&s=200"; $user->setPictureUrl($url); $existingGroup = $this->entityManager->getRepository('RZ\\Roadiz\\Core\\Entities\\Group')->findOneByName('Admin'); $user->addGroup($existingGroup); $this->entityManager->persist($user); $this->entityManager->flush(); } return true; }
/** * {@inheritdoc} * * @param User $user * * @return boolean */ public function equals(User $user) { return $this->username == $user->getUsername() || $this->email == $user->getEmail(); }
/** * @param RZ\Roadiz\Core\Entities\User $user * @param RZ\Roadiz\Core\Entities\Role $role * * @return \Symfony\Component\Form\Form */ private function buildRemoveRoleForm(User $user, Role $role) { $builder = $this->createFormBuilder()->add('userId', 'hidden', ['data' => $user->getId(), 'constraints' => [new NotBlank()]])->add('roleId', 'hidden', ['data' => $role->getId(), 'constraints' => [new NotBlank()]]); return $builder->getForm(); }
/** * @param array $data * @param RZ\Roadiz\Core\Entities\Group $group * @param RZ\Roadiz\Core\EntitiesUser $user * * @return RZ\Roadiz\Core\Entities\User */ private function removeUser($data, Group $group, User $user) { if ($data['groupId'] == $group->getId() && $data['userId'] == $user->getId()) { if ($user !== null) { $user->removeGroup($group); $this->getService('em')->flush(); } return $user; } }