Пример #1
0
                break;
        }
    } else {
        set_file_folder_permissions();
        $manager = connectToDatabase($dbHostForm, $dbUsernameForm, $dbPassForm, null, $dbPortForm);
        $dbNameForm = preg_replace('/[^a-zA-Z0-9_\\-]/', '', $dbNameForm);
        // Drop and create the database anyways
        $manager->getConnection()->getSchemaManager()->dropAndCreateDatabase($dbNameForm);
        $manager = connectToDatabase($dbHostForm, $dbUsernameForm, $dbPassForm, $dbNameForm, $dbPortForm);
        $metadataList = $manager->getMetadataFactory()->getAllMetadata();
        $schema = $manager->getConnection()->getSchemaManager()->createSchema();
        // Create database schema
        $tool = new \Doctrine\ORM\Tools\SchemaTool($manager);
        $tool->createSchema($metadataList);
        $sysPath = api_get_path(SYS_PATH);
        finishInstallation($manager, $sysPath, $encryptPassForm, $passForm, $adminLastName, $adminFirstName, $loginForm, $emailForm, $adminPhoneForm, $languageForm, $institutionForm, $institutionUrlForm, $campusForm, $allowSelfReg, $allowSelfRegProf, $installationProfile);
        include 'install_files.inc.php';
    }
    display_after_install_message($installType);
    // Hide the "please wait" message sent previously
    echo '<script>$(\'#pleasewait\').hide(\'fast\');</script>';
} elseif (@$_POST['step1'] || $badUpdatePath) {
    //STEP 1 : REQUIREMENTS
    //make sure that proposed path is set, shouldn't be necessary but...
    if (empty($proposedUpdatePath)) {
        $proposedUpdatePath = $_POST['updatePath'];
    }
    display_requirements($installType, $badUpdatePath, $proposedUpdatePath, $update_from_version_8);
} else {
    // This is the start screen.
    display_language_selection();
Пример #2
0
        break;
    case 'installPluginDisc':
        cbSpoofCheck('plugin');
        checkCanAdminPlugins('core.admin');
        installPluginDisc();
        break;
    case 'latestVersion':
        latestVersion();
        break;
    case 'fieldclass':
    case 'tabclass':
    case 'pluginclass':
        tabClass($option, $task, (int) cbGetParam($_REQUEST, 'user', 0));
        break;
    case 'finishinstallation':
        finishInstallation($option);
        break;
    default:
        break;
}
function deleteUsers($cid, $inComprofilerOnly = false)
{
    global $_CB_framework;
    $msg = null;
    if (!Application::MyUser()->isAuthorizedToPerformActionOnAsset('core.admin', 'com_comprofiler')) {
        $msg = CBTxt::T('You cannot delete a user. Only higher-level users have this power.');
    }
    if (!$msg && is_array($cid) && count($cid)) {
        new cbTabs(0, 2, null, false);
        // loads plugins
        foreach ($cid as $id) {
Пример #3
0
 /**
  * Installation command
  *
  * @param array $databaseSettings
  * @param string $version
  * @param $output
  * @return bool
  */
 public function processInstallation($databaseSettings, $version, $output)
 {
     $this->setDoctrineSettings($this->getHelperSet());
     $sqlFolder = $this->getInstallationPath($version);
     $databaseMap = $this->getDatabaseMap();
     // Fixing the version
     if (!isset($databaseMap[$version])) {
         $version = $this->getVersionToInstall($version);
     }
     if (isset($databaseMap[$version])) {
         $dbInfo = $databaseMap[$version];
         $output->writeln("<comment>Starting creation of database version </comment><info>{$version}... </info>");
         $sections = $dbInfo['section'];
         $sectionsCount = 0;
         foreach ($sections as $sectionData) {
             if (is_array($sectionData)) {
                 foreach ($sectionData as $dbInfo) {
                     $databaseName = $dbInfo['name'];
                     $dbList = $dbInfo['sql'];
                     if (!empty($dbList)) {
                         $output->writeln("<comment>Creating database</comment> <info>{$databaseName} ... </info>");
                         if (empty($dbList)) {
                             $output->writeln("<error>No files to load.</error>");
                             continue;
                         } else {
                             // Fixing db list
                             foreach ($dbList as &$db) {
                                 $db = $sqlFolder . $db;
                             }
                             $command = $this->getApplication()->find('dbal:import');
                             // Importing sql files.
                             $arguments = array('command' => 'dbal:import', 'file' => $dbList);
                             $input = new ArrayInput($arguments);
                             $command->run($input, $output);
                             // Getting extra information about the installation.
                             $output->writeln("<comment>Database </comment><info>{$databaseName} </info><comment>setup process terminated successfully!</comment>");
                         }
                         $sectionsCount++;
                     }
                 }
             }
         }
         if (isset($sections) && isset($sections['course'])) {
             //@todo fix this
             foreach ($sections['course'] as $courseInfo) {
                 $databaseName = $courseInfo['name'];
                 $output->writeln("Inserting course database in Chamilo: <info>{$databaseName}</info>");
                 $this->createCourse($this->getHelper('db')->getConnection(), $databaseName);
                 $sectionsCount++;
             }
         }
         // Special migration for chamilo v 1.10
         if (isset($sections) && isset($sections['migrations'])) {
             $sectionsCount = 1;
             require_once $this->getRootSys() . '/main/inc/lib/database.constants.inc.php';
             require_once $this->getRootSys() . '/main/inc/lib/system/session.class.php';
             require_once $this->getRootSys() . '/main/inc/lib/chamilo_session.class.php';
             require_once $this->getRootSys() . '/main/inc/lib/api.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/text.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/display.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/database.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/custom_pages.class.php';
             require_once $this->getRootSys() . '/main/install/install.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/hook/interfaces/base/HookEventInterface.php';
             require_once $this->getRootSys() . '/main/inc/lib/hook/interfaces/HookCreateUserEventInterface.php';
             require_once $this->getRootSys() . '/main/inc/lib/hook/interfaces/base/HookManagementInterface.php';
             require_once $this->getRootSys() . '/main/inc/lib/hook/HookEvent.php';
             require_once $this->getRootSys() . '/main/inc/lib/hook/HookCreateUser.php';
             require_once $this->getRootSys() . '/main/inc/lib/hook/HookManagement.php';
             require_once $this->getRootSys() . '/main/inc/lib/model.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/events.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/extra_field.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/extra_field_value.lib.php';
             require_once $this->getRootSys() . '/main/inc/lib/urlmanager.lib.php';
             $encoder = $this->getRootSys() . '/src/Chamilo/UserBundle/Security/Encoder.php';
             if (file_exists($encoder)) {
                 require_once $encoder;
             }
             require_once $this->getRootSys() . '/main/inc/lib/usermanager.lib.php';
             $newInstallationPath = $this->getRootSys();
             $chashPath = __DIR__ . '/../../../../';
             $database = new \Database();
             $database::$utcDateTimeClass = 'Chash\\DoctrineExtensions\\DBAL\\Types\\UTCDateTimeType';
             $database->connect($databaseSettings, $chashPath, $newInstallationPath);
             $manager = $database->getManager();
             $metadataList = $manager->getMetadataFactory()->getAllMetadata();
             $output->writeln("<comment>Creating database structure</comment>");
             $manager->getConnection()->getSchemaManager()->createSchema();
             // Create database schema
             $tool = new \Doctrine\ORM\Tools\SchemaTool($manager);
             $tool->createSchema($metadataList);
             $portalSettings = $this->getPortalSettings();
             $adminSettings = $this->getAdminSettings();
             \finishInstallation($manager, $newInstallationPath, $portalSettings['encrypt_method'], $adminSettings['password'], $adminSettings['lastname'], $adminSettings['firstname'], $adminSettings['username'], $adminSettings['email'], $adminSettings['phone'], $adminSettings['language'], $portalSettings['institution'], $portalSettings['institution_url'], $portalSettings['sitename'], false, false);
             $output->writeln("<comment>Remember to run composer install</comment>");
         }
         if ($sectionsCount == 0) {
             $output->writeln("<comment>No database section found for creation</comment>");
         }
         $output->writeln("<comment>Check your installation status with </comment><info>chamilo:status</info>");
         return true;
     } else {
         $output->writeln("<comment>Unknown version: </comment> <info>{$version}</info>");
     }
     return false;
 }