diff --git a/src/PHPCensor/Command/CreateAdminCommand.php b/src/PHPCensor/Command/CreateAdminCommand.php
index 6d661f89..779b9fc6 100644
--- a/src/PHPCensor/Command/CreateAdminCommand.php
+++ b/src/PHPCensor/Command/CreateAdminCommand.php
@@ -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('User account created!');
} catch (\Exception $e) {
$output->writeln(sprintf('%s', 'PHP Censor failed to create your admin account.'));
diff --git a/src/PHPCensor/Command/InstallCommand.php b/src/PHPCensor/Command/InstallCommand.php
index fe8f0ae8..ef99a127 100644
--- a/src/PHPCensor/Command/InstallCommand.php
+++ b/src/PHPCensor/Command/InstallCommand.php
@@ -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('User account created!');
} catch (\Exception $ex) {
diff --git a/src/PHPCensor/Controller/UserController.php b/src/PHPCensor/Controller/UserController.php
index 67b619dd..afbd324e 100644
--- a/src/PHPCensor/Controller/UserController.php
+++ b/src/PHPCensor/Controller/UserController.php
@@ -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');
diff --git a/src/PHPCensor/Security/Authentication/UserProvider/Ldap.php b/src/PHPCensor/Security/Authentication/UserProvider/Ldap.php
index 142da14f..46593475 100644
--- a/src/PHPCensor/Security/Authentication/UserProvider/Ldap.php
+++ b/src/PHPCensor/Security/Authentication/UserProvider/Ldap.php
@@ -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);
}
}
diff --git a/src/PHPCensor/Service/UserService.php b/src/PHPCensor/Service/UserService.php
index dfddda6d..c7860aca 100644
--- a/src/PHPCensor/Service/UserService.php
+++ b/src/PHPCensor/Service/UserService.php
@@ -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));
diff --git a/tests/PHPCensor/Service/UserServiceTest.php b/tests/PHPCensor/Service/UserServiceTest.php
index 6e18e2db..fdfe0241 100644
--- a/tests/PHPCensor/Service/UserServiceTest.php
+++ b/tests/PHPCensor/Service/UserServiceTest.php
@@ -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());
}