public function login() { if (\Ip\Internal\Admin\Backend::userId()) { //user has already been logged in \Ip\Internal\Content\Service::setManagementMode(1); return new \Ip\Response\Redirect(ipHomeUrl()); } // If none of the administrator exist, we create default one and log in user $administrators = \Ip\Internal\Administrators\Model::getAll(); if (empty($administrators)) { $adminUsername = '******'; $adminEmail = ipGetOptionLang('Config.websiteEmail'); $adminPassword = Model::randString(8); $adminId = \Ip\Internal\Administrators\Service::add($adminUsername, $adminEmail, $adminPassword); \Ip\Internal\AdminPermissionsModel::addPermission('Super admin', $adminId); // Set variable to know that user is autogenerated ipStorage()->set('Ip', 'adminIsAutogenerated', $adminPassword); // Logging in new admin $model = Model::instance(); if ($model->login($adminUsername, $adminPassword)) { \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminIsAutogenerated')); $redirectUrl = ipHomeUrl(); return new \Ip\Response\Redirect($redirectUrl); } else { \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminIsAutogeneratedFailed')); // todo: handle errors // $errors = $model->getErrors(); } } $content = ipView('view/login.php', array('loginForm' => FormHelper::getLoginForm())); ipAddJs('Ip/Internal/Admin/assets/login.js'); $response = ipResponse(); $response->setLayout('Ip/Internal/Admin/view/loginLayout.php'); $response->setLayoutVariable('content', $content); ipAddJs('assets/languageSelect.js'); $response->setLayoutVariable('languageSelectForm', FormHelper::getLanguageSelectForm()); return $response; }