Fixes for authentication and users
This commit is contained in:
parent
0a4636a379
commit
0ab4acd72f
|
@ -81,7 +81,7 @@ class CreateAdminCommand extends Command
|
|||
$adminPass = $helper->ask($input, $output, $question);
|
||||
|
||||
try {
|
||||
$userService->createUser($adminName, $adminEmail, $adminPass, true);
|
||||
$userService->createUser($adminName, $adminEmail, 'default', json_encode(['type' => 'internal']), $adminPass, true);
|
||||
$output->writeln('<info>User account created!</info>');
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln(sprintf('<error>%s</error>', 'PHP Censor failed to create your admin account.'));
|
||||
|
|
|
@ -466,7 +466,7 @@ class InstallCommand extends Command
|
|||
/** @var UserStore $userStore */
|
||||
$userStore = Factory::getStore('User');
|
||||
$userService = new UserService($userStore);
|
||||
$userService->createUser($admin['name'], $admin['email'], $admin['password'], 1);
|
||||
$userService->createUser($admin['name'], $admin['email'], 'default', json_encode(['type' => 'internal']), $admin['password'], true);
|
||||
|
||||
$output->writeln('<info>User account created!</info>');
|
||||
} catch (\Exception $ex) {
|
||||
|
|
|
@ -175,12 +175,12 @@ class UserController extends Controller
|
|||
}
|
||||
|
||||
|
||||
$name = $this->getParam('name', null);
|
||||
$email = $this->getParam('email', null);
|
||||
$name = $this->getParam('name', null);
|
||||
$email = $this->getParam('email', null);
|
||||
$password = $this->getParam('password', null);
|
||||
$isAdmin = (int)$this->getParam('is_admin', 0);
|
||||
$isAdmin = (int)$this->getParam('is_admin', 0);
|
||||
|
||||
$this->userService->createUser($name, $email, $password, $isAdmin);
|
||||
$this->userService->createUser($name, $email, 'default', json_encode(['type' => 'internal']), $password, $isAdmin);
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', APP_URL . 'user');
|
||||
|
|
|
@ -14,6 +14,7 @@ use b8\Store\Factory;
|
|||
use PHPCensor\Model\User;
|
||||
use PHPCensor\Security\Authentication\LoginPasswordProviderInterface;
|
||||
use PHPCensor\Service\UserService;
|
||||
use PHPCensor\Store\UserStore;
|
||||
|
||||
/**
|
||||
* Ldap user provider.
|
||||
|
@ -68,11 +69,13 @@ class Ldap extends AbstractProvider implements LoginPasswordProviderInterface
|
|||
|
||||
public function provisionUser($identifier)
|
||||
{
|
||||
$userService = new UserService(Factory::getStore('User'));
|
||||
/** @var UserStore $user */
|
||||
$user = Factory::getStore('User');
|
||||
$userService = new UserService($user);
|
||||
|
||||
$parts = explode("@", $identifier);
|
||||
$username = $parts[0];
|
||||
|
||||
return $userService->createUserWithProvider($username, $identifier, $this->key, null);
|
||||
return $userService->createUser($username, $identifier, $this->key, json_encode($this->config), '', false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,46 +35,21 @@ class UserService
|
|||
/**
|
||||
* Create a new user within PHPCI.
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $emailAddress
|
||||
* @param string $password
|
||||
* @param bool $isAdmin
|
||||
* @param string $language
|
||||
* @param integer $perPage
|
||||
* @param string $name
|
||||
* @param string $email
|
||||
* @param string $providerKey
|
||||
* @param string $providerData
|
||||
* @param string $password
|
||||
* @param bool $isAdmin
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function createUser($name, $emailAddress, $password, $isAdmin = false, $language = null, $perPage = null)
|
||||
public function createUser($name, $email, $providerKey, $providerData, $password, $isAdmin = false)
|
||||
{
|
||||
$user = new User();
|
||||
$user->setName($name);
|
||||
$user->setEmail($emailAddress);
|
||||
$user->setEmail($email);
|
||||
$user->setHash(password_hash($password, PASSWORD_DEFAULT));
|
||||
$user->setIsAdmin(($isAdmin ? 1 : 0));
|
||||
$user->setLanguage($language);
|
||||
$user->setPerPage($perPage);
|
||||
|
||||
return $this->store->save($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user within PHPCI (with provider).
|
||||
*
|
||||
* @param $name
|
||||
* @param $emailAddress
|
||||
* @param $providerKey
|
||||
* @param $providerData
|
||||
* @param bool $isAdmin
|
||||
*
|
||||
* @return \PHPCI\Model\User
|
||||
*/
|
||||
|
||||
public function createUserWithProvider($name, $emailAddress, $providerKey, $providerData, $isAdmin = false)
|
||||
{
|
||||
$user = new User();
|
||||
$user->setName($name);
|
||||
$user->setEmail($emailAddress);
|
||||
$user->setHash("");
|
||||
$user->setProviderKey($providerKey);
|
||||
$user->setProviderData($providerData);
|
||||
$user->setIsAdmin(($isAdmin ? 1 : 0));
|
||||
|
|
|
@ -42,7 +42,14 @@ class UserServiceTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
public function testExecute_CreateNonAdminUser()
|
||||
{
|
||||
$user = $this->testedService->createUser('Test', 'test@example.com', 'testing', 0);
|
||||
$user = $this->testedService->createUser(
|
||||
'Test',
|
||||
'test@example.com',
|
||||
'default',
|
||||
json_encode(['type' => 'internal']),
|
||||
'testing',
|
||||
false
|
||||
);
|
||||
|
||||
$this->assertEquals('Test', $user->getName());
|
||||
$this->assertEquals('test@example.com', $user->getEmail());
|
||||
|
@ -52,7 +59,15 @@ class UserServiceTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
public function testExecute_CreateAdminUser()
|
||||
{
|
||||
$user = $this->testedService->createUser('Test', 'test@example.com', 'testing', 1);
|
||||
$user = $this->testedService->createUser(
|
||||
'Test',
|
||||
'test@example.com',
|
||||
'default',
|
||||
json_encode(['type' => 'internal']),
|
||||
'testing',
|
||||
true
|
||||
);
|
||||
|
||||
$this->assertEquals(1, $user->getIsAdmin());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue