Example #1
0
 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;
 }