private function install()
 {
     CLIOutput::writeln('installation');
     $this->installation = new InstallationServices($this->website_locale);
     CLIOutput::writeln("\t" . 'kernel...');
     if (!$this->create_phpboost_tables()) {
         return false;
     }
     CLIOutput::writeln("\t" . 'modules...');
     if (!$this->installation->configure_website($this->website_server, $this->website_path, $this->website_name, $this->website_slogan, $this->website_description, $this->website_timezone)) {
         return false;
     }
     CLIOutput::writeln("\t" . 'admin creation...');
     if (!$this->installation->create_admin($this->user_login, $this->user_password, $this->user_email, false, false)) {
         return false;
     }
     $this->installation->save_server_environnement_config();
     CLIOutput::writeln('installation successfull');
     return true;
 }
 private function handle_form()
 {
     $installation_services = new InstallationServices();
     $installation_services->configure_website($this->form->get_value('host'), $this->form->get_value('path'), $this->form->get_value('name'), $this->form->get_value('slogan'), $this->form->get_value('description'), $this->form->get_value('timezone')->get_raw_value());
     $this->security_config->set_internal_password_min_length($this->form->get_value('internal_password_min_length'));
     $this->security_config->set_internal_password_strength($this->form->get_value('internal_password_strength')->get_raw_value());
     if ($this->form->get_value('login_and_email_forbidden_in_password')) {
         $this->security_config->forbid_login_and_email_in_password();
     } else {
         $this->security_config->allow_login_and_email_in_password();
     }
     SecurityConfig::save();
     if ($this->server_configuration->has_curl_library()) {
         if ($this->form->get_value('fb_auth_enabled')) {
             $this->authentication_config->enable_fb_auth();
             $this->authentication_config->set_fb_app_id($this->form->get_value('fb_app_id'));
             $this->authentication_config->set_fb_app_key($this->form->get_value('fb_app_key'));
         } else {
             $this->authentication_config->disable_fb_auth();
         }
         if ($this->form->get_value('google_auth_enabled')) {
             $this->authentication_config->enable_google_auth();
             $this->authentication_config->set_google_client_id($this->form->get_value('google_client_id'));
             $this->authentication_config->set_google_client_secret($this->form->get_value('google_client_secret'));
         } else {
             $this->authentication_config->disable_google_auth();
         }
         AuthenticationConfig::save();
     }
     AppContext::get_response()->redirect(InstallUrlBuilder::admin());
 }