/** * Create a user account for the admin * * @param array $submissionVars Submitted vars * @param bool $login Login in the admin user? * * @return bool */ protected function createAdminAccount($submissionVars, $login = FALSE) { try { $guid = register_user($submissionVars['username'], $submissionVars['password1'], $submissionVars['displayname'], $submissionVars['email']); } catch (Exception $e) { register_error($e->getMessage()); return false; } if (!$guid) { register_error(elgg_echo('install:admin:cannot_create')); return false; } $user = get_entity($guid); if (!$user instanceof ElggUser) { register_error(elgg_echo('install:error:loadadmin')); return false; } elgg_set_ignore_access(TRUE); if ($user->makeAdmin() == FALSE) { register_error(elgg_echo('install:error:adminaccess')); } else { datalist_set('admin_registered', 1); } elgg_set_ignore_access(false); // add validation data to satisfy user validation plugins create_metadata($guid, 'validated', TRUE, '', 0, ACCESS_PUBLIC); create_metadata($guid, 'validated_method', 'admin_user', '', 0, ACCESS_PUBLIC); if ($login) { $handler = new Elgg_Http_DatabaseSessionHandler(_elgg_services()->db); $storage = new Elgg_Http_NativeSessionStorage(array(), $handler); $session = new ElggSession($storage); $session->setName('Elgg'); _elgg_services()->setValue('session', $session); if (login($user) == FALSE) { register_error(elgg_echo('install:error:adminlogin')); } } return TRUE; }
/** * Create a user account for the admin * * @param array $submissionVars Submitted vars * @param bool $login Login in the admin user? * * @return bool */ protected function createAdminAccount($submissionVars, $login = FALSE) { try { $guid = register_user($submissionVars['username'], $submissionVars['password1'], $submissionVars['displayname'], $submissionVars['email']); } catch (Exception $e) { register_error($e->getMessage()); return false; } if (!$guid) { register_error(_elgg_services()->translator->translate('install:admin:cannot_create')); return false; } $user = get_entity($guid); if (!$user instanceof ElggUser) { register_error(_elgg_services()->translator->translate('install:error:loadadmin')); return false; } elgg_set_ignore_access(TRUE); if ($user->makeAdmin() == FALSE) { register_error(_elgg_services()->translator->translate('install:error:adminaccess')); } else { _elgg_services()->configTable->set('admin_registered', 1); } elgg_set_ignore_access(false); // add validation data to satisfy user validation plugins create_metadata($guid, 'validated', TRUE, '', 0, ACCESS_PUBLIC); create_metadata($guid, 'validated_method', 'admin_user', '', 0, ACCESS_PUBLIC); if ($login) { $handler = new Elgg\Http\DatabaseSessionHandler(_elgg_services()->db); // session.cache_limiter is unfortunately set to "" by the NativeSessionStorage constructor, // so we must capture and inject it directly. $options = ['cache_limiter' => session_cache_limiter()]; $storage = new Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage($options, $handler); $session = new ElggSession(new Symfony\Component\HttpFoundation\Session\Session($storage)); $session->setName('Elgg'); _elgg_services()->setValue('session', $session); if (login($user) == FALSE) { register_error(_elgg_services()->translator->translate('install:error:adminlogin')); } } return TRUE; }
/** * Session factory * * @param Elgg_Di_ServiceProvider $c Dependency injection container * @return ElggSession */ protected function getSession(Elgg_Di_ServiceProvider $c) { $handler = new Elgg_Http_DatabaseSessionHandler($c->db); $storage = new Elgg_Http_NativeSessionStorage($handler); $session = new ElggSession($storage); $session->setName('Elgg'); return $session; }