public function updateUser(User $user, $name, $emailAddress, $password = null, $isAdmin = null) { $user->setName($name); $user->setEmail($emailAddress); if (!empty($password)) { $user->setHash(password_hash($password, PASSWORD_DEFAULT)); } if (!is_null($isAdmin)) { $user->setIsAdmin($isAdmin ? 1 : 0); } return $this->store->save($user); }
/** * @param OutputInterface $output * @param DialogHelper $dialog */ protected function createAdminUser(OutputInterface $output, DialogHelper $dialog) { // Try to create a user account: $adminEmail = $dialog->askAndValidate($output, 'Your email address: ', function ($answer) { if (!filter_var($answer, FILTER_VALIDATE_EMAIL)) { throw new Exception('Must be a valid email address.'); } return $answer; }, false); $adminPass = $dialog->askHiddenResponse($output, 'Enter your desired admin password: '******'Enter your name: '); try { $user = new User(); $user->setEmail($adminEmail); $user->setName($adminName); $user->setIsAdmin(1); $user->setHash(password_hash($adminPass, PASSWORD_DEFAULT)); $this->reloadConfig(); $store = Factory::getStore('User'); $store->save($user); $output->writeln('<info>User account created!</info>'); } catch (\Exception $ex) { $output->writeln('<error>PHPCI failed to create your admin account.</error>'); $output->writeln('<error>' . $ex->getMessage() . '</error>'); die; } }
/** * @covers PHPUnit::execute */ public function testExecute_DoesNotChangePasswordIfEmpty() { $user = new User(); $user->setHash(password_hash('testing', PASSWORD_DEFAULT)); $user = $this->testedService->updateUser($user, 'Test', '*****@*****.**', '', 0); $this->assertTrue(password_verify('testing', $user->getHash())); }