Exemple #1
0
/**
 * @param int $oldversion the version we are upgrading from
 * @return bool result
 */
function xmldb_repository_picasa_upgrade($oldversion) {
    global $CFG, $DB;

    $dbman = $DB->get_manager();

    if ($oldversion < 2012051400) {
        // Delete old user preferences storing authsub tokens.
        $DB->delete_records('user_preferences', array('name' => 'google_authsub_sesskey_picasa'));
        upgrade_plugin_savepoint(true, 2012051400, 'repository', 'picasa');
    }

    if ($oldversion < 2012053000) {
        require_once($CFG->dirroot.'/repository/lib.php');
        $existing = $DB->get_record('repository', array('type' => 'picasa'), '*', IGNORE_MULTIPLE);

        if ($existing) {
            $picasaplugin = new repository_type('picasa', array(), true);
            $picasaplugin->delete();
            repository_picasa_admin_upgrade_notification();
        }

        upgrade_plugin_savepoint(true, 2012053000, 'repository', 'picasa');
    }

    return true;
}
/**
 * @param int $oldversion the version we are upgrading from
 * @return bool result
 */
function xmldb_repository_googledocs_upgrade($oldversion)
{
    global $CFG, $DB;
    require_once __DIR__ . '/upgradelib.php';
    $dbman = $DB->get_manager();
    if ($oldversion < 2012051400) {
        // Delete old user preferences containing authsub tokens.
        $DB->delete_records('user_preferences', array('name' => 'google_authsub_sesskey'));
        upgrade_plugin_savepoint(true, 2012051400, 'repository', 'googledocs');
    }
    if ($oldversion < 2012053000) {
        require_once $CFG->dirroot . '/repository/lib.php';
        $existing = $DB->get_record('repository', array('type' => 'googledocs'), '*', IGNORE_MULTIPLE);
        if ($existing) {
            $googledocsplugin = new repository_type('googledocs', array(), true);
            $googledocsplugin->delete();
            repository_googledocs_admin_upgrade_notification();
        }
        upgrade_plugin_savepoint(true, 2012053000, 'repository', 'googledocs');
    }
    // Moodle v2.3.0 release upgrade line
    // Put any upgrade step following this
    // Moodle v2.4.0 release upgrade line
    // Put any upgrade step following this
    // Moodle v2.5.0 release upgrade line.
    // Put any upgrade step following this.
    // Moodle v2.6.0 release upgrade line.
    // Put any upgrade step following this.
    // Moodle v2.7.0 release upgrade line.
    // Put any upgrade step following this.
    return true;
}
Exemple #3
0
/**
 * Creating a default instance of areafiles repository on install
 *
 * @package    repository_areafiles
 * @copyright  2013 Marina Glancy
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
function xmldb_repository_areafiles_install()
{
    global $CFG;
    $result = true;
    require_once $CFG->dirroot . '/repository/lib.php';
    $areafiles_plugin = new repository_type('areafiles', array(), true);
    if (!($id = $areafiles_plugin->create(true))) {
        $result = false;
    }
    return $result;
}
Exemple #4
0
/**
 * Heanet Media repository upload
 *
 * @package    repository_heanetmedia_upload
 * @copyright  2015 Heanet swdev@heanet.ie
 * @author     Luis Naia
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
function xmldb_repository_heanetmedia_upload_install()
{
    global $CFG;
    $result = true;
    require_once $CFG->dirroot . '/repository/lib.php';
    $repo = new repository_type('heanetmedia_upload', array(), true);
    if (!($id = $repo->create(true))) {
        $result = false;
    }
    return $result;
}
Exemple #5
0
/**
 * Create a default instance of the youtube repository
 *
 * @return bool A status indicating success or failure
 */
function xmldb_repository_lifesizevideo_install()
{
    global $CFG;
    $result = true;
    require_once $CFG->dirroot . '/repository/lib.php';
    $lifesizevideoplugin = new repository_type('lifesizevideo', array(), true);
    if (!($id = $lifesizevideoplugin->create(true))) {
        $result = false;
    }
    return $result;
}
 /**
  * Installing repository tests
  *
  * @copyright 2012 Dongsheng Cai {@link http://dongsheng.org}
  */
 public function test_install_repository()
 {
     global $CFG, $DB;
     $this->resetAfterTest(true);
     $syscontext = context_system::instance();
     $repositorypluginname = 'boxnet';
     // override repository permission
     $capability = 'repository/' . $repositorypluginname . ':view';
     $allroles = $DB->get_records_menu('role', array(), 'id', 'archetype, id');
     assign_capability($capability, CAP_ALLOW, $allroles['guest'], $syscontext->id, true);
     $plugintype = new repository_type($repositorypluginname);
     $pluginid = $plugintype->create(false);
     $this->assertInternalType('int', $pluginid);
     $args = array();
     $args['type'] = $repositorypluginname;
     $repos = repository::get_instances($args);
     $repository = reset($repos);
     $this->assertInstanceOf('repository', $repository);
     $info = $repository->get_meta();
     $this->assertEquals($repositorypluginname, $info->type);
 }
 /**
  * Create the type of repository.
  *
  * @param stdClass|array $record data to use to set up the type
  * @param array $options options for the set up of the type
  *
  * @return stdClass repository type record
  */
 public function create_type($record = null, array $options = null)
 {
     global $CFG, $DB;
     require_once $CFG->dirroot . '/repository/lib.php';
     $record = (array) $record;
     $type = $this->get_typename();
     $typeoptions = repository::static_function($type, 'get_type_option_names');
     $instanceoptions = repository::static_function($type, 'get_instance_option_names');
     // The type allow for user and course instances.
     if (!empty($instanceoptions)) {
         $typeoptions[] = 'enableuserinstances';
         $typeoptions[] = 'enablecourseinstances';
     }
     // Make sure all the parameters are set.
     $record = $this->prepare_type_record($record);
     foreach ($typeoptions as $option) {
         if (!isset($record[$option])) {
             throw new coding_exception("{$option} must be present in testing::create_repository_type() for {$type}");
         }
     }
     // Limit to allowed options.
     $record = array_intersect_key($record, array_flip($typeoptions));
     // Create the type.
     $plugintype = new repository_type($type, $record);
     $plugintype->create(false);
     return $DB->get_record('repository', array('type' => $type));
 }
Exemple #8
0
         $instanceoptionnames = repository::static_function($repository, 'get_instance_option_names');
         if (!empty($instanceoptionnames)) {
             if (array_key_exists('enablecourseinstances', $fromform)) {
                 $settings['enablecourseinstances'] = $fromform->enablecourseinstances;
             } else {
                 $settings['enablecourseinstances'] = 0;
             }
             if (array_key_exists('enableuserinstances', $fromform)) {
                 $settings['enableuserinstances'] = $fromform->enableuserinstances;
             } else {
                 $settings['enableuserinstances'] = 0;
             }
         }
         $success = $repositorytype->update_options($settings);
     } else {
         $type = new repository_type($plugin, (array) $fromform, $visible);
         $type->create();
         $success = true;
         $data = data_submitted();
     }
     if ($success) {
         // configs saved
         redirect($baseurl);
     } else {
         print_error('instancenotsaved', 'repository', $baseurl);
     }
     exit;
 } else {
     echo $OUTPUT->header();
     echo $OUTPUT->heading(get_string('configplugin', 'repository_' . $plugin));
     $displaysettingform = true;
         $instanceoptionnames = repository::static_function($edit, 'get_instance_option_names');
         if (!empty($instanceoptionnames)) {
             if (array_key_exists('enablecourseinstances', $fromform)) {
                 $settings['enablecourseinstances'] = $fromform->enablecourseinstances;
             } else {
                 $settings['enablecourseinstances'] = 0;
             }
             if (array_key_exists('enableuserinstances', $fromform)) {
                 $settings['enableuserinstances'] = $fromform->enableuserinstances;
             } else {
                 $settings['enableuserinstances'] = 0;
             }
         }
         $success = $repositorytype->update_options($settings);
     } else {
         $type = new repository_type($plugin, (array) $fromform);
         $type->create();
         $success = true;
         $data = data_submitted();
     }
     if ($success) {
         $savedstr = get_string('configsaved', 'repository');
         admin_externalpage_print_header();
         print_heading($savedstr);
         redirect($baseurl, $savedstr, 3);
     } else {
         print_error('instancenotsaved', 'repository', $baseurl);
     }
     exit;
 } else {
     admin_externalpage_print_header();
    public function test_can_be_edited_by_user() {
        $this->resetAfterTest(true);

        $syscontext = context_system::instance();
        $course = $this->getDataGenerator()->create_course();
        $coursecontext = context_course::instance($course->id);
        $roleid = create_role('A role', 'arole', 'A role', '');
        set_role_contextlevels($roleid, array($syscontext->contextlevel, $coursecontext->contextlevel));
        $user = $this->getDataGenerator()->create_user();
        $this->setUser($user);

        $plugintype = new repository_type('flickr_public');
        $plugintype->create(true);
        $params = array(
            'name' => 'Flickr Public'
        );

        // Instance on a site level.
        $repoid = repository::static_function('flickr_public', 'create', 'flickr_public', 0, $syscontext, $params);
        $systemrepo = repository::get_repository_by_id($repoid, $syscontext);

        role_assign($roleid, $user->id, $syscontext->id);
        assign_capability('moodle/site:config', CAP_ALLOW, $roleid, $syscontext, true);
        assign_capability('repository/flickr_public:view', CAP_ALLOW, $roleid, $syscontext, true);
        accesslib_clear_all_caches_for_unit_testing();
        $this->assertTrue($systemrepo->can_be_edited_by_user());

        assign_capability('repository/flickr_public:view', CAP_PROHIBIT, $roleid, $syscontext, true);
        assign_capability('moodle/site:config', CAP_PROHIBIT, $roleid, $syscontext, true);
        accesslib_clear_all_caches_for_unit_testing();
        $this->assertFalse($systemrepo->can_be_edited_by_user());

        assign_capability('repository/flickr_public:view', CAP_ALLOW, $roleid, $syscontext, true);
        assign_capability('moodle/site:config', CAP_PROHIBIT, $roleid, $syscontext, true);
        accesslib_clear_all_caches_for_unit_testing();
        $this->assertFalse($systemrepo->can_be_edited_by_user());

        role_unassign($roleid, $user->id, $syscontext->id);
        accesslib_clear_all_caches_for_unit_testing();

        // Instance on a course level.
        $this->getDataGenerator()->enrol_user($user->id, $course->id, $roleid);

        $repoid = repository::static_function('flickr_public', 'create', 'flickr_public', 0, $coursecontext, $params);
        $courserepo = repository::get_repository_by_id($repoid, $coursecontext);

        assign_capability('moodle/course:update', CAP_ALLOW, $roleid, $coursecontext, true);
        assign_capability('repository/flickr_public:view', CAP_ALLOW, $roleid, $coursecontext, true);
        accesslib_clear_all_caches_for_unit_testing();
        $this->assertTrue($courserepo->can_be_edited_by_user());

        assign_capability('repository/flickr_public:view', CAP_PROHIBIT, $roleid, $coursecontext, true);
        accesslib_clear_all_caches_for_unit_testing();
        $this->assertFalse($courserepo->can_be_edited_by_user());

        assign_capability('moodle/course:update', CAP_ALLOW, $roleid, $coursecontext, true);
        assign_capability('repository/flickr_public:view', CAP_PROHIBIT, $roleid, $coursecontext, true);
        accesslib_clear_all_caches_for_unit_testing();
        $this->assertFalse($courserepo->can_be_edited_by_user());

        role_unassign($roleid, $user->id, $coursecontext->id);
        accesslib_clear_all_caches_for_unit_testing();

        // Instance on a user level.
        $otheruser = $this->getDataGenerator()->create_user();
        $otherusercontext = context_user::instance($otheruser->id);
        role_assign($roleid, $user->id, $syscontext->id);
        assign_capability('repository/flickr_public:view', CAP_ALLOW, $roleid, $syscontext, true);
        accesslib_clear_all_caches_for_unit_testing();

        // Editing someone else's instance.
        $repoid = repository::static_function('flickr_public', 'create', 'flickr_public', 0, $otherusercontext, $params);
        $userrepo = repository::get_repository_by_id($repoid, $syscontext);
        $this->assertFalse($userrepo->can_be_edited_by_user());

        // Editing my own instance.
        $usercontext = context_user::instance($user->id);
        $repoid = repository::static_function('flickr_public', 'create', 'flickr_public', 0, $usercontext, $params);
        $userrepo = repository::get_repository_by_id($repoid, $syscontext);
        $this->assertTrue($userrepo->can_be_edited_by_user());

    }
Exemple #11
0
         $instanceoptionnames = repository::static_function($repository, 'get_instance_option_names');
         if (!empty($instanceoptionnames)) {
             if (array_key_exists('enablecourseinstances', $fromform)) {
                 $settings['enablecourseinstances'] = $fromform->enablecourseinstances;
             } else {
                 $settings['enablecourseinstances'] = 0;
             }
             if (array_key_exists('enableuserinstances', $fromform)) {
                 $settings['enableuserinstances'] = $fromform->enableuserinstances;
             } else {
                 $settings['enableuserinstances'] = 0;
             }
         }
         $success = $repositorytype->update_options($settings);
     } else {
         $type = new repository_type($plugin, (array) $fromform, $visible);
         $success = true;
         if (!($repoid = $type->create())) {
             $success = false;
         }
         $data = data_submitted();
     }
     if ($success) {
         // configs saved
         redirect($baseurl);
     } else {
         print_error('instancenotsaved', 'repository', $baseurl);
     }
     exit;
 } else {
     echo $OUTPUT->header();
Exemple #12
0
function repository_setup_default_plugins()
{
    global $OUTPUT;
    //if the plugin type has no multiple instance (e.g. has no instance option name)
    //repository_type::create will create an instance automatically
    $local_plugin = new repository_type('local', array(), true);
    $local_plugin_id = $local_plugin->create(true);
    $upload_plugin = new repository_type('upload', array(), true);
    $upload_plugin_id = $upload_plugin->create(true);
    if (is_int($local_plugin_id) or is_int($upload_plugin_id)) {
        echo $OUTPUT->box(get_string('setupdefaultplugins', 'repository'));
    }
    return true;
}
Exemple #13
0
/**
 * ELIS(TM): Enterprise Learning Intelligence Suite
 * Copyright (C) 2014 onwards 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    repository_elisfiles
 * @author     Remote-Learner.net Inc
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 * @copyright  (C) 2008-2014 Remote-Learner.net Inc (http://www.remote-learner.net)
 *
 */

function xmldb_repository_elisfiles_install() {
    global $CFG, $DB;

    $result = true;
    $dbman = $DB->get_manager();

    // Run upgrade steps from old plugin if applicable
    $oldversion = get_config('repository_elis_files', 'version');
    if ($oldversion !== false) {
        require_once($CFG->dirroot.'/repository/elisfiles/lib/lib.php');

        if ($oldversion < 2011110301) {
            $errors = false;
            $auths = elis_files_nopasswd_auths();
            $authlist = "'". implode("', '", $auths) ."'";
            $users = $DB->get_records_select('user', "auth IN ({$authlist})", array(), 'id, auth');
            if (!empty($users)) {
                foreach ($users as $user) {
                    $user = get_complete_user_data('id', $user->id);
                    $migrate_ok = elis_files_user_created($user);
                    if (!$migrate_ok) {
                        $errors = true;
                        // error_log("xmldb_block_elis_files_upgrade({$oldversion}) - failed migrating user ({$user->id}) to Alfresco.");
                    }
                }
            }
            if (!$errors) {
                set_config('initialized', 1, ELIS_files::$plugin_name);
            }
        }

        if ($result && $oldversion < 2012042300) {
            //check that elis_files_organization_store exists and repository_elisfiles_userset does not exist
            if ($dbman->table_exists('elis_files_organization_store') && !$dbman->table_exists('elis_files_userset_store')) {

                $original_table = new xmldb_table('elis_files_organization_store');

                //rename table
                $dbman->rename_table($original_table, 'elis_files_userset_store');
                $new_table = new xmldb_table('elis_files_userset_store');

                //drop the keys
                $original_uuid_index = new xmldb_index('elisfileorgastor_orguu_uix', XMLDB_INDEX_UNIQUE, array('organizationid', 'uuid'));
                $original_index = new xmldb_index('elisfileorgastor_org_ix', XMLDB_INDEX_NOTUNIQUE, array('organizationid'));
                $dbman->drop_index($new_table, $original_uuid_index);
                $dbman->drop_index($new_table, $original_index);

                //rename field
                $organization = new xmldb_field('organizationid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0);
                $dbman->rename_field($new_table, $organization, 'usersetid');

                //add the keys
                $new_uuid_index = new xmldb_index('elisfileuserstor_useuu_uix', XMLDB_INDEX_UNIQUE, array('usersetid', 'uuid'));
                $new_index = new xmldb_index('elisfileuserstor_use_ix', XMLDB_INDEX_NOTUNIQUE, array('usersetid'));
                $dbman->add_index($new_table, $new_uuid_index);
                $dbman->add_index($new_table, $new_index);
            }
        }

        if ($result && $oldversion < 2012042500) {
            defined('ELIS_FILES_BROWSE_USERSET_FILES') or define('ELIS_FILES_BROWSE_USERSET_FILES',   60);

            // ELIS-4676 ELIS UserSet Files is no longer valid, so change to default of ELIS User Files
            $select = "plugin = 'elis_files' AND name = 'default_browse'";

            if ($record = $DB->get_record_select('config_plugins', $select)) {
                require_once($CFG->dirroot.'/repository/elisfiles/lib/ELIS_files.php');
                $int_value = (int)$record->value;
                $valid_values = array(
                        ELIS_FILES_BROWSE_SITE_FILES,
                        ELIS_FILES_BROWSE_SHARED_FILES,
                        ELIS_FILES_BROWSE_COURSE_FILES,
                        ELIS_FILES_BROWSE_USER_FILES
                );
                if (!in_array($int_value, $valid_values)) {
                    $record->value = ELIS_FILES_BROWSE_USER_FILES;
                    $DB->update_record('config_plugins', $record);
                }
            }
        }

        if ($result && $oldversion < 2012050200)  {
            // Check for any plug-in settings using an incorrect plug-in name "ELIS_files" instead of "elis_files"
            if ($pcfgs = $DB->get_records('config_plugins', array('plugin' => 'ELIS_files'))) {
                foreach ($pcfgs as $pcfg) {
                    $pcfg->plugin = 'elis_files';
                    $DB->update_record('config_plugins', $pcfg);
                }
            }
        }

        /*
         * This upgrade step removes any possible stale data in the repository_elisfiles_userset and
         * repository_elisfiles_course that not longer have relevant courses or user sets
         */
        if ($result && $oldversion < 2012083000)  {
            $haveuserset = false;
            if (file_exists($CFG->dirroot.'/local/elisprogram/lib/data/userset.class.php')) {
                require_once($CFG->dirroot.'/local/elisprogram/lib/data/userset.class.php');
                $haveuserset = $dbman->table_exists(userset::TABLE);
            }

            $sql = 'DELETE FROM {elis_files_userset_store}';
            if ($haveuserset) {
                $sql .= ' WHERE NOT EXISTS (SELECT *
                                              FROM {'.userset::TABLE.'}
                                             WHERE {elis_files_userset_store}.usersetid = {'.userset::TABLE.'}.id)';

            }
            $DB->execute($sql);

            $sql = 'DELETE FROM {elis_files_course_store}
                    WHERE NOT EXISTS (SELECT *
                                        FROM {course}
                                       WHERE {elis_files_course_store}.courseid = {course}.id)';

            $DB->execute($sql);
        }

        /*
         * This upgrade step removes backslashes from category titles in the repository_elisfiles_cats
         */
        if ($result && $oldversion < 2012090400)  {
            require_once($CFG->dirroot.'/repository/elisfiles/ELIS_files_factory.class.php');
            // Initialize the repo object.
            $repo = repository_factory::factory();
            $table = 'elis_files_categories';
            if ($repo && $dbman->table_exists($table) && $categories = elis_files_get_categories()) {
                $DB->delete_records($table);

                // Perform the back-end category refresh
                $categories = elis_files_get_categories();
                $uuids = array();
                $repo->process_categories($uuids, $categories);
            }
        }

        // If the pre-ELIS 2 Alfresco plugin was present and enabled on this site, then we need to automatically
        // enable the ELIS Files plugin
        $select1 = "name = 'repository' AND ".$DB->sql_compare_text('value')." = 'alfresco'";
        $select2 = "name = 'repository_plugins_enabled' AND ".$DB->sql_compare_text('value')." = 'alfresco'";

        if ($DB->record_exists_select('config', $select1) && $DB->record_exists_select('config', $select2)) {
            require_once($CFG->dirroot.'/repository/lib.php');

            $elis_files = new repository_type('elisfiles', array(), true);

            if (!empty($elis_files)) {
                $elis_files->update_visibility(true);
                $elis_files->create();
            }

            $DB->delete_records_select('config', "(name = 'repository' OR name = 'repository_plugins_enabled')");
        }

        // ELIS-3677, ELIS-3802 Moodle files is no longer valid, so change to default of ELIS User Files
        $select = "plugin = 'elis_files' AND name = 'default_browse'";

        if ($record = $DB->get_record_select('config_plugins', $select)) {
            require_once($CFG->dirroot.'/repository/elisfiles/lib/ELIS_files.php');
            $int_value = (int)$record->value;
            $valid_values = array(
                    ELIS_FILES_BROWSE_SITE_FILES,
                    ELIS_FILES_BROWSE_SHARED_FILES,
                    ELIS_FILES_BROWSE_COURSE_FILES,
                    ELIS_FILES_BROWSE_USER_FILES
            );
            if (!in_array($int_value, $valid_values)) {
                $record->value = ELIS_FILES_BROWSE_USER_FILES;
                $DB->update_record('config_plugins', $record);
            }
        }

        $ignoreresult = elis_files_update_references_in_database();
    }

    // Convert old tables to new
    static $tablemap = array(
        'elis_files_categories'    => 'repository_elisfiles_cats',
        'elis_files_course_store'  => 'repository_elisfiles_course',
        'elis_files_userset_store' => 'repository_elisfiles_userset'
    );
    foreach ($tablemap as $oldtable => $newtable) {
        $oldtableobj = new xmldb_table($oldtable);
        if ($dbman->table_exists($oldtableobj)) {
            $newtableobj = new xmldb_table($newtable);
            $dbman->drop_table($newtableobj);
            $dbman->rename_table($oldtableobj, $newtable);
        }
    }

    // Migrate capabilities
    $oldcapprefix = 'repository/elis_files';
    $newcapprefix = 'repository/elisfiles';
    $sql = 'SELECT * FROM {role_capabilities} WHERE capability LIKE ?';
    $params = array($oldcapprefix.'%');
    $rolecaps = $DB->get_recordset_sql($sql, $params);
    foreach ($rolecaps as $rolecaprec) {
        $updaterec = new stdClass;
        $updaterec->id = $rolecaprec->id;
        $updaterec->capability = str_replace($oldcapprefix, $newcapprefix, $rolecaprec->capability);
        $DB->update_record('role_capabilities', $updaterec);
    }
    $sql = 'SELECT * FROM {capabilities} WHERE name LIKE ?';
    $caps = $DB->get_recordset_sql($sql, $params);
    foreach ($caps as $cap) {
        $cap->name = str_replace($oldcapprefix, $newcapprefix, $cap->name);
        $cap->component = str_replace('repository_elis_files', 'repository_elisfiles', $cap->component);
        $DB->update_record('capabilities', $cap);
    }

    // Migrate language strings
    $migrator = new \local_eliscore\install\migration\migrator('repository_elis_files', 'repository_elisfiles');
    $migrator->migrate_language_strings();

    // Copy any settings from old plugin
    $oldconfig = get_config('elis_files');
    foreach ($oldconfig as $name => $value) {
        set_config($name, $value, 'elisfiles');
    }
    unset_all_config_for_plugin('elis_files');
    unset_all_config_for_plugin('repository_elis_files');

    // Update repository table
    $sql = 'UPDATE {repository} SET type = "elisfiles" WHERE type = "elis_files"';
    $DB->execute($sql);

    return $result;
}