Ip\Internal\Admin\SiteController::login PHP Method

login() public method

public login ( )
    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 = 'admin';
            $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;
    }