Example #1
0
function xmldb_local_elisprogram_upgrade($oldversion = 0)
{
    global $DB, $CFG;
    $dbman = $DB->get_manager();
    $result = true;
    // Always upon any upgrade, ensure ELIS scheduled tasks is in good health.
    if ($result) {
        require_once $CFG->dirroot . '/local/eliscore/lib/tasklib.php';
        elis_tasks_update_definition('local_elisprogram');
    }
    // Migrate language strings
    if ($result && $oldversion < 2014030701) {
        $migrator = new \local_elisprogram\install\migration\elis26();
        $result = $migrator->migrate_language_strings();
        upgrade_plugin_savepoint($result, 2014030701, 'local', 'elisprogram');
    }
    return $result;
}
Example #2
0
/**
 * ELIS(TM): Enterprise Learning Intelligence Suite
 * Copyright (C) 2008-2013 Remote-Learner.net Inc (http://www.remote-learner.net)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @package    local_elisprogram
 * @author     Remote-Learner.net Inc
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 * @copyright  (C) 2008-2013 Remote Learner.net Inc http://www.remote-learner.net
 *
 */
function xmldb_local_elisprogram_install()
{
    global $CFG, $DB;
    $elisadminblockinstalled = file_exists($CFG->dirroot . '/local/elisprogram/lib/setup.php') && $DB->record_exists('block', array('name' => 'elisadmin'));
    if ($elisadminblockinstalled) {
        require_once $CFG->dirroot . '/blocks/elisadmin/lib.php';
    }
    require_once $CFG->dirroot . '/local/elisprogram/lib/lib.php';
    // Install custom context levels.
    \local_eliscore\context\helper::set_custom_levels(\local_elisprogram\context\contextinfo::get_contextinfo());
    \local_eliscore\context\helper::install_custom_levels();
    // Initialize custom context levels.
    context_helper::reset_levels();
    \local_eliscore\context\helper::reset_levels();
    \local_eliscore\context\helper::init_levels();
    // Migrate component.
    $migrator = new \local_elisprogram\install\migration\elis26();
    if ($migrator->old_component_installed() === true) {
        $migrator->migrate();
    }
    //make sure the site has exactly one curr admin block instance
    //that is viewable everywhere
    if ($elisadminblockinstalled) {
        block_elisadmin_create_instance();
    }
    // make sure that the manager role can be assigned to all PM context levels
    update_capabilities('local_elisprogram');
    // load context levels
    pm_ensure_role_assignable('manager');
    pm_ensure_role_assignable('curriculumadmin');
    // Migrate dataroot files
    pm_migrate_certificate_files();
    // These notifications are default-on.
    pm_set_config('notify_addedtowaitlist_user', 1);
    pm_set_config('notify_enroledfromwaitlist_user', 1);
    pm_set_config('notify_incompletecourse_user', 1);
    // Ensure ELIS scheduled tasks is initialized.
    require_once $CFG->dirroot . '/local/eliscore/lib/tasklib.php';
    elis_tasks_update_definition('local_elisprogram');
    // Remove some lingering subplugins that were renamed
    unset_all_config_for_plugin('usersetenrol_manual');
    unset_all_config_for_plugin('usersetenrol_moodle_profile');
}
Example #3
0
 /**
  * Test migrate capabilities.
  */
 public function test_migrate_capabilities()
 {
     global $DB;
     // Setup.
     $rolecap = new \stdClass();
     $rolecap->contextid = 3;
     $rolecap->roleid = 4;
     $rolecap->capability = 'elis/program:manage';
     $rolecap->permission = 1;
     $rolecap->timemodified = time();
     $rolecap->modifierid = 5;
     $rolecap->id = $DB->insert_record('role_capabilities', $rolecap);
     // Migrate.
     $migrator = new \local_elisprogram\install\migration\elis26();
     $migrator->migrate_capabilities();
     $rec = $DB->get_record('role_capabilities', array('id' => $rolecap->id));
     $this->assertNotEmpty($rec);
     $this->assertEquals('local/elisprogram:manage', $rec->capability);
 }