public function createUserObject($username, Password $password) { $usernameLower = strtolower($username); //search name can only be lower case $user = new User($usernameLower); foreach ($user->getObjectClasses() as $objectClass) { $user->addObject($objectClass); } $user->getObject(Schemas\InetOrgPerson::class)->setMail($usernameLower . '@' . $this->domain); $user->addRole('ROLE_USER'); $user->setDisplayName($username); $user->setPasswordObject($password); foreach ($this->services as $service_name => $serviceConfig) { if (!isset($serviceConfig['enable']) || !$serviceConfig['enable']) { continue; } $service = new $serviceConfig['object_class']($service_name); $service->setUser($user); if (isset($serviceConfig['default']) && $serviceConfig['default']) { $service->setEnabled(true); } } return $user; }