import.php000064400000006477147207537510006620 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 mgg5VLhOkov3x+NxkAwwoRy=mod_upgrade.php000064400000177147147207537510007577 0ustar00 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU GPL version 3 or later * @copyright For copyright information on Mahara, please see the README file distributed with this software. * */ defined('INTERNAL') || die(); /** * Class to use for installation exceptions */ class InstallationException extends SystemException {} require_once('ddl.php'); /** * This function checks core and plugins for which need to be upgraded/installed * * Note: This function is sometimes executed during upgrades from * ancient databases. Avoid rash assumptions about what's installed * or these upgrades may fail. * * @param string $name The name of the plugin to check. If no name is specified, * all plugins are checked. * @return mixed If a name is specified, an object will be returned with upgrade data * about the requested component (which can be "core", "local", or a plugin). * If the component desn't need to be updated, an empty array will be returned. * If no name is specified, an array of such objects will be returned. * It will also include an array key "settings", which will be an array * that may contain metadata about the upgrade/install process. */ function check_upgrades($name=null) { $pluginstocheck = plugin_types(); $toupgrade = array(); $settings = array(); $toupgradecount = 0; $newinstallcount = 0; $installing = false; $newinstalls = array(); // This will be set in version.php below. $config = new stdClass(); require('version.php'); // check core first... if (empty($name) || $name == 'core') { try { $coreversion = get_config('version'); } catch (Exception $e) { $coreversion = 0; } $corerelease = get_config('release'); $core = new stdClass(); $core->to = $config->version; $core->torelease = $config->release; $core->toseries = $config->series; $toupgrade['core'] = $core; if (empty($coreversion)) { if (is_mysql()) { // Show a more informative error message if using mysql with skip-innodb // In MySQL 5.6.x, we run the command 'SHOW ENGINES' to check if InnoDB is enabled or not global $db; $result = $db->Execute("SHOW ENGINES"); $hasinnodb = false; while (!$result->EOF) { if ($result->fields['Engine'] == 'InnoDB' && ($result->fields['Support'] == 'YES' || $result->fields['Support'] == 'DEFAULT')) { $hasinnodb = true; break; } $result->MoveNext(); } if (!$hasinnodb) { throw new ConfigSanityException("Mahara requires InnoDB tables. Please ensure InnoDB tables are enabled in your MySQL server."); } } $core->install = true; $installing = true; } else if ($config->version > $coreversion) { if (isset($config->minupgradefrom) && isset($config->minupgraderelease) && $coreversion < $config->minupgradefrom) { throw new ConfigSanityException("Must upgrade to $config->minupgradefrom " . "($config->minupgraderelease) first " . " (you have $coreversion ($corerelease)"); } $toupgradecount ++; $core->upgrade = true; $core->from = $coreversion; $core->fromrelease = $corerelease; } else if ($config->version < $coreversion) { // Core can't be upgraded. Remove it from the list! unset($toupgrade['core']); if (get_config('productionmode')) { throw new ConfigSanityException("Database version of Mahara $corerelease ($coreversion) is newer " . "than files version $config->release ($config->version). " . "Please make sure you have the correct Mahara files in place."); } else { if (!defined('SITEOUTOFSYNC')) { define('SITEOUTOFSYNC', 'core'); } } } else { // Core doesn't need to be upgraded. Remove it from the list! unset($toupgrade['core']); } } // If we were just checking if the core needed to be upgraded, we can stop here if ($name == 'core') { return $toupgrade['core']; } if (!$installing && (empty($name) || $name == 'local')) { $localversion = get_config('localversion'); $localrelease = get_config('localrelease'); if (is_null($localversion)) { $localversion = 0; $localrelease = 0; } $config = new stdClass(); require(get_config('docroot') . 'local/version.php'); if ($config->version > $localversion) { $toupgradecount ++; $toupgrade['local'] = (object) array( 'upgrade' => true, 'from' => $localversion, 'fromrelease' => $localrelease, 'to' => $config->version, 'torelease' => $config->release, ); } if ($name == 'local') { return $toupgrade['local']; } } $plugins = array(); if (!empty($name)) { try { $bits = explode('.', $name); $pt = $bits[0]; $pn = $bits[1]; $pp = null; if ($pt == 'blocktype' && strpos($pn, '/') !== false) { $bits = explode('/', $pn); $pp = get_config('docroot') . 'artefact/' . $bits[0] . '/blocktype/' . $bits[1]; } validate_plugin($pt, $pn, $pp); $plugins[] = explode('.', $name); } catch (InstallationException $_e) { log_warn(get_string('pluginnotinstallable', 'mahara', $pt, $pn) . $_e->GetMessage()); } } else { foreach ($pluginstocheck as $plugin) { $dirhandle = opendir(get_config('docroot') . $plugin); while (false !== ($dir = readdir($dirhandle))) { if (strpos($dir, '.') === 0 or 'CVS' == $dir) { continue; } $plugin_dir = get_config('docroot') . $plugin . '/' . $dir; if (!is_dir($plugin_dir)) { continue; } try { validate_plugin($plugin, $dir); $plugins[] = array($plugin, $dir); } catch (InstallationException $_e) { log_warn(get_string('pluginnotinstallable', 'mahara', $plugin, $dir) . $_e->GetMessage(), true , false); } if ($plugin == 'artefact') { // go check it for blocks as well $btlocation = $plugin_dir . '/blocktype'; if (!is_dir($btlocation)) { continue; } $btdirhandle = opendir($btlocation); while (false !== ($btdir = readdir($btdirhandle))) { if (strpos($btdir, '.') === 0 or 'CVS' == $btdir) { continue; } if (!is_dir(get_config('docroot') . $plugin . '/' . $dir . '/blocktype/' . $btdir)) { continue; } $plugins[] = array('blocktype', $dir . '/' . $btdir); } } } } } $outofsyncplugins = array(); foreach ($plugins as $plugin) { $plugintype = $plugin[0]; $pluginname = $plugin[1]; $pluginpath = "$plugin[0]/$plugin[1]"; $pluginkey = "$plugin[0].$plugin[1]"; if ($plugintype == 'blocktype' && strpos($pluginname, '/') !== false) { // sigh.. we're a bit special... $bits = explode('/', $pluginname); $pluginpath = 'artefact/' . $bits[0] . '/blocktype/' . $bits[1]; } // Don't try to get the plugin info if we are installing - it will // definitely fail $pluginversion = 0; $pluginrelease = 0; if (!$installing && table_exists(new XMLDBTable($plugintype . '_installed'))) { if ($plugintype == 'blocktype' && strpos($pluginname, '/')) { $bits = explode('/', $pluginname); $installed = get_record('blocktype_installed', 'name', $bits[1], 'artefactplugin', $bits[0]); } else { $installed = get_record($plugintype . '_installed', 'name', $pluginname); } if ($installed) { $pluginversion = $installed->version; $pluginrelease = $installed->release; } } $config = new stdClass(); require(get_config('docroot') . $pluginpath . '/version.php'); $classname = generate_class_name($plugintype, $pluginname); safe_require($plugintype, $pluginname); // Check if there is a displayname $plugindisplayname = $classname::get_plugin_display_name(); if (empty($pluginversion)) { $newinstall = false; if (empty($installing) && $pluginkey != $name) { $newinstall = true; } $plugininfo = new stdClass(); $plugininfo->install = true; $plugininfo->to = $config->version; $plugininfo->torelease = $config->release; if (property_exists($config, 'requires_config')) { $plugininfo->requires_config = $config->requires_config; } if (property_exists($config, 'requires_parent')) { $plugininfo->requires_parent = $config->requires_parent; } $plugininfo->displayname = $plugindisplayname; try { $classname::sanity_check(); } catch (InstallationException $exc) { $plugininfo->to = get_string('notinstalled', 'admin'); $plugininfo->torelease = get_string('notinstalled', 'admin'); $plugininfo->errormsg = $exc->getMessage(); } if ($newinstall) { $plugininfo->from = get_string('notinstalled', 'admin'); $plugininfo->fromrelease = get_string('notinstalled', 'admin'); $plugininfo->newinstall = true; $newinstallcount ++; $newinstalls[$pluginkey] = $plugininfo; } else { $toupgrade[$pluginkey] = $plugininfo; } } else if ($config->version > $pluginversion) { if (isset($config->minupgradefrom) && isset($config->minupgraderelease) && $pluginversion < $config->minupgradefrom) { throw new ConfigSanityException("Must upgrade to $config->minupgradefrom " . " ($config->minupgraderelease) first " . " (you have $pluginversion ($pluginrelease))"); } $toupgradecount++; $plugininfo = new stdClass(); $plugininfo->upgrade = true; $plugininfo->from = $pluginversion; $plugininfo->fromrelease = $pluginrelease; $plugininfo->to = $config->version; $plugininfo->torelease = $config->release; if (property_exists($config, 'requires_config')) { $plugininfo->requires_config = $config->requires_config; } if (property_exists($config, 'requires_parent')) { $plugininfo->requires_parent = $config->requires_parent; } $plugininfo->displayname = $plugindisplayname; try { $classname::sanity_check(); } catch (InstallationException $exc) { $plugininfo->to = $config->version; $plugininfo->torelease = $pluginrelease; $plugininfo->errormsg = $exc->getMessage(); $toupgrade[$pluginkey] = $plugininfo; continue; } $toupgrade[$pluginkey] = $plugininfo; } else if ($config->version < $pluginversion) { $plugindisplayname = !empty($plugindisplayname) ? $plugindisplayname : (!empty($config->name) ? $config->name : $pluginpath); if (get_config('productionmode')) { throw new ConfigSanityException("Database version of Mahara plugin " . $plugindisplayname . " " . $pluginrelease . " (" . $pluginversion . ") is newer " . "than files version " . $config->release . " (" . $config->version . "). " . "Please make sure you have the correct Mahara plugin files in place."); } else { $outofsyncplugins[] = $plugindisplayname; } } } if (!empty($outofsyncplugins)) { if (!defined('SITEOUTOFSYNC')) { define('SITEOUTOFSYNC', implode(', ', $outofsyncplugins)); } } // if we've just asked for one, don't return an array... if (!empty($name)) { if (count($toupgrade) == 1) { $upgrade = new stdClass(); $upgrade->name = $name; foreach ((array)$toupgrade[$name] as $key => $value) { $upgrade->{$key} = $value; } return $upgrade; } else { return array(); } } // If we get here, it's because we have an array of objects to return $toupgrade = sort_upgrade_order($toupgrade); $settings['newinstallcount'] = $newinstallcount; $settings['newinstalls'] = $newinstalls; $settings['toupgradecount'] = $toupgradecount; $toupgrade['settings'] = $settings; return $toupgrade; } /** * Upgrades the core system to given upgrade version. * * @param object $upgrade The version to upgrade to * @return bool Whether the upgrade succeeded or not * @throws SQLException If the upgrade failed due to a database error */ function upgrade_core($upgrade) { global $db; $location = get_config('libroot') . 'db/'; db_begin(); if (!empty($upgrade->install)) { install_from_xmldb_file($location . 'install.xml'); } else { require_once($location . 'upgrade.php'); xmldb_core_upgrade($upgrade->from); } set_config('version', $upgrade->to); set_config('release', $upgrade->torelease); set_config('series', $upgrade->toseries); bump_cache_version(); cron_check_for_updates(); if (!empty($upgrade->install)) { core_postinst(); } db_commit(); return true; } /** * Upgrades local customisations. * * @param object $upgrade The version to upgrade to * @return bool Whether the upgrade succeeded or not * @throws SQLException If the upgrade failed due to a database error */ function upgrade_local($upgrade) { db_begin(); require_once(get_config('docroot') . 'local/upgrade.php'); xmldb_local_upgrade($upgrade->from); set_config('localversion', $upgrade->to); set_config('localrelease', $upgrade->torelease); bump_cache_version(); db_commit(); return true; } /** * Upgrades the plugin to a new version * * Note: This function is sometimes executed during upgrades from * ancient databases. Avoid rash assumptions about what's installed * or these upgrades may fail. * * @param object $upgrade Information about the plugin to upgrade * @return bool Whether the upgrade succeeded or not * @throws SQLException If the upgrade failed due to a database error */ function upgrade_plugin($upgrade) { global $db; $plugintype = ''; $pluginname = ''; list($plugintype, $pluginname) = explode('.', $upgrade->name); if ($plugintype == 'blocktype' && strpos($pluginname, '/') !== false) { list($artefactplugin, $blocktypename) = explode('/', $pluginname); $location = get_config('docroot') . 'artefact/' . $artefactplugin . '/blocktype/' . $blocktypename . '/db/'; $function = 'xmldb_' . $plugintype . '_' . $blocktypename . '_upgrade'; } else { $location = get_config('docroot') . $plugintype . '/' . $pluginname . '/db/'; $function = 'xmldb_' . $plugintype . '_' . $pluginname . '_upgrade'; } db_begin(); if (!empty($upgrade->install)) { if (is_readable($location . 'install.xml')) { install_from_xmldb_file($location . 'install.xml'); } } else { if (is_readable($location . 'upgrade.php')) { require_once($location . 'upgrade.php'); if (!$function($upgrade->from)) { throw new InstallationException("Failed to run " . $function . " (check logs for errors)"); } } } $installed = new stdClass(); $installed->name = $pluginname; $installed->version = $upgrade->to; $installed->release = $upgrade->torelease; if ($plugintype == 'blocktype') { if (!empty($blocktypename)) { $installed->name = $blocktypename; } if (!empty($artefactplugin)) { // blocks come from artefactplugins. $installed->artefactplugin = $artefactplugin; } } if (property_exists($upgrade, 'requires_config')) { $installed->requires_config = $upgrade->requires_config; } if (property_exists($upgrade, 'requires_parent')) { $installed->requires_parent = $upgrade->requires_parent; } $installtable = $plugintype . '_installed'; if (!empty($upgrade->install)) { insert_record($installtable,$installed); } else { update_record($installtable, $installed, 'name'); } bump_cache_version(); // postinst stuff... safe_require($plugintype, $pluginname); $pcname = generate_class_name($plugintype, $installed->name); if ($crons = $pcname::get_cron()) { foreach ($crons as $cron) { $cron = (object)$cron; if (empty($cron->callfunction)) { throw new InstallationException("cron for $pcname didn't supply function name"); } if (!is_callable(array($pcname, $cron->callfunction))) { throw new InstallationException("cron $cron->callfunction for $pcname supplied but wasn't callable"); } $new = false; $table = $plugintype . '_cron'; if (!empty($upgrade->install)) { $new = true; } else if (!record_exists($table, 'plugin', $pluginname, 'callfunction', $cron->callfunction)) { $new = true; } $cron->plugin = $pluginname; if (!empty($new)) { insert_record($table, $cron); } else { update_record($table, $cron, array('plugin', 'callfunction')); } } } if ($events = $pcname::get_event_subscriptions()) { foreach ($events as $event) { $event = (object)$event; if (!record_exists('event_type', 'name', $event->event)) { throw new InstallationException("event $event->event for $pcname doesn't exist!"); } if (empty($event->callfunction)) { throw new InstallationException("event $event->event for $pcname didn't supply function name"); } if (!is_callable(array($pcname, $event->callfunction))) { throw new InstallationException("event $event->event with function $event->callfunction for $pcname supplied but wasn't callable"); } $exists = false; $table = $plugintype . '_event_subscription'; $block = blocktype_namespaced_to_single($pluginname); if (empty($upgrade->install)) { $exists = get_record($table, 'plugin' , $block, 'event', $event->event); } $event->plugin = $block; if (empty($exists)) { insert_record($table, $event); } else { update_record($table, $event, array('id' => $exists->id)); } } } if ($activities = $pcname::get_activity_types()) { foreach ($activities as $activity) { $classname = 'ActivityType' . ucfirst($plugintype) . ucfirst($pluginname) . ucfirst($activity->name); if (!class_exists($classname)) { throw new InstallationException(get_string('classmissing', 'error', $classname, $pluginname, $plugintype)); } // Add activity_type if it doesn't exist if (!get_record('activity_type', 'name', $activity->name, 'plugintype', $plugintype, 'pluginname', $pluginname)) { $activity->plugintype = $plugintype; $activity->pluginname = $pluginname; $activity->defaultmethod = get_config('defaultnotificationmethod') ? get_config('defaultnotificationmethod') : $activity->defaultmethod; $where = (object) array( 'name' => $activity->name, 'plugintype' => $plugintype, 'pluginname' => $pluginname, ); ensure_record_exists('activity_type', $where, $activity); } } } // install artefact types if ($plugintype == 'artefact') { if (!is_callable(array($pcname, 'get_artefact_types'))) { throw new InstallationException("Artefact plugin $pcname must implement get_artefact_types and doesn't"); } $types = $pcname::get_artefact_types(); $ph = array(); if (is_array($types)) { // Check for missing plugins - don't try to remove their data. // Bugs 505732 and 1287344. $used_types = get_records_sql_assoc("SELECT t.name, count(a.id) ct, t.plugin FROM {artefact_installed_type} t LEFT JOIN {artefact} a ON t.name = a.artefacttype GROUP BY t.name HAVING count(a.id) > 0 AND plugin = '$pluginname'"); if ($used_types === FALSE) { $used_types = array(); } foreach ($types as $type) { $ph[] = '?'; if (!record_exists('artefact_installed_type', 'plugin', $pluginname, 'name', $type)) { $t = new stdClass(); $t->name = $type; $t->plugin = $pluginname; insert_record('artefact_installed_type',$t); } if (isset($used_types[$type])) { unset($used_types[$type]); } } foreach ($used_types as $type) { $ph[] = '?'; } $used_types = array_keys($used_types); $select = '(plugin = ? AND name NOT IN (' . implode(',', $ph) . '))'; delete_records_select('artefact_installed_type', $select, array_merge(array($pluginname),$types,$used_types)); if (!empty($used_types)) { log_warn('Plugin for artefact type(s) "' . implode('", "', $used_types) . '" has gone away', true, false); } } } // install blocktype categories. if ($plugintype == 'blocktype' && get_config('installed')) { install_blocktype_categories_for_plugin($pluginname); install_blocktype_viewtypes_for_plugin($pluginname); } $prevversion = (empty($upgrade->install)) ? $upgrade->from : 0; $pcname::postinst($prevversion); db_commit(); return true; } function core_postinst() { // Attempt to create session directories $sessionpath = get_config('sessionpath'); $status = Session::create_directory_levels($sessionpath); $now = db_format_timestamp(time()); // Set default search plugin set_config('searchplugin', 'internal'); set_config('lang', get_accept_lang()); set_config('installation_key', get_random_key()); set_config('installation_time', $now); set_config('stats_installation_time', $now); set_config('passwordpolicy', '8_ulns'); // Pre-define SMTP settings set_config('smtphosts', ''); set_config('smtpport', ''); set_config('smtpuser', ''); set_config('smtppass', ''); set_config('smtpsecure', ''); // XMLDB adds a table's keys immediately after creating the table. Some // foreign keys therefore cannot be created during the XMLDB installation, // because they refer to tables created later in the installation. These // missing keys can be created now that all the core tables exist. $table = new XMLDBTable('usr'); $key = new XMLDBKey('profileiconfk'); $key->setAttributes(XMLDB_KEY_FOREIGN, array('profileicon'), 'artefact', array('id')); add_key($table, $key); $table = new XMLDBTable('institution'); $key = new XMLDBKey('logofk'); $key->setAttributes(XMLDB_KEY_FOREIGN, array('logo'), 'artefact', array('id')); add_key($table, $key); // PostgreSQL supports indexes over functions of columns, MySQL does not. // We make use if this if we can if (is_postgres()) { // Improve the username index execute_sql('DROP INDEX {usr_use_uix}'); execute_sql('CREATE UNIQUE INDEX {usr_use_uix} ON {usr}(LOWER(username))'); // Add user search indexes // Postgres only. We could create non-lowercased indexes in MySQL, but // they would not be useful, and would require a change to varchar columns. execute_sql('CREATE INDEX {usr_fir_ix} ON {usr}(LOWER(firstname))'); execute_sql('CREATE INDEX {usr_las_ix} ON {usr}(LOWER(lastname))'); execute_sql('CREATE INDEX {usr_pre_ix} ON {usr}(LOWER(preferredname))'); execute_sql('CREATE INDEX {usr_ema_ix} ON {usr}(LOWER(email))'); execute_sql('CREATE INDEX {usr_stu_ix} ON {usr}(LOWER(studentid))'); // Only one profile view per user execute_sql("CREATE UNIQUE INDEX {view_own_type_uix} ON {view}(owner) WHERE type = 'profile'"); } // Some more advanced constraints. XMLDB can't handle this in its xml file format execute_sql('ALTER TABLE {artefact} ADD CHECK ( (owner IS NOT NULL AND "group" IS NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NOT NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NULL AND institution IS NOT NULL) )'); execute_sql('ALTER TABLE {view} ADD CHECK ( (owner IS NOT NULL AND "group" IS NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NOT NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NULL AND institution IS NOT NULL) )'); execute_sql('ALTER TABLE {artefact} ADD CHECK ( (author IS NOT NULL AND authorname IS NULL ) OR (author IS NULL AND authorname IS NOT NULL) )'); execute_sql('ALTER TABLE {view_access} ADD CHECK ( (accesstype IS NOT NULL AND "group" IS NULL AND usr IS NULL AND token IS NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NOT NULL AND usr IS NULL AND token IS NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NULL AND usr IS NOT NULL AND token IS NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NULL AND usr IS NULL AND token IS NOT NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NULL AND usr IS NULL AND token IS NULL AND institution IS NOT NULL) )'); execute_sql('ALTER TABLE {collection} ADD CHECK ( (owner IS NOT NULL AND "group" IS NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NOT NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NULL AND institution IS NOT NULL) )'); set_antispam_defaults(); reload_html_filters(); // Default set of sites from which iframe content can be embedded // See also the postinst() function in plugins for other valid iframes // by searching for 'iframe_source_icon' $iframesources = array( 'www.youtube.com/embed/' => 'YouTube', 'player.vimeo.com/video/' => 'Vimeo', 'www.slideshare.net/slideshow/embed_code/' => 'SlideShare', 'www.glogster.com/glog/' => 'Glogster', 'www.glogster.com/glog.php' => 'Glogster', 'edu.glogster.com/glog/' => 'Glogster', 'edu.glogster.com/glog.php' => 'Glogster', 'wikieducator.org/index.php' => 'WikiEducator', 'voki.com/php/' => 'Voki', ); $iframedomains = array( 'YouTube' => 'www.youtube.com', 'Vimeo' => 'vimeo.com', 'SlideShare' => 'www.slideshare.net', 'Glogster' => 'www.glogster.com', 'WikiEducator' => 'wikieducator.org', 'Voki' => 'voki.com', ); update_safe_iframes($iframesources, $iframedomains); require_once(get_config('docroot') . 'lib/file.php'); update_magicdb_path(); return $status; } function core_install_lastcoredata_defaults() { global $USER; db_begin(); $institution = new stdClass(); $institution->name = 'mahara'; $institution->displayname = 'No Institution'; $institution->authplugin = 'internal'; $institution->theme = 'default'; $institution->priority = 0; insert_record('institution', $institution); $auth_instance = new stdClass(); $auth_instance->instancename = 'Internal'; $auth_instance->priority='1'; $auth_instance->institution = 'mahara'; $auth_instance->authname = 'internal'; $auth_instance->active = 1; $auth_instance->id = insert_record('auth_instance', $auth_instance, 'id', true); // Insert the root user $userid = 0; $user = new stdClass(); $user->id = $userid; $user->username = 'root'; $user->password = '*'; $user->salt = '*'; $user->firstname = 'System'; $user->lastname = 'User'; $user->email = 'root@example.org'; $user->quota = get_config_plugin('artefact', 'file', 'defaultquota'); $user->authinstance = $auth_instance->id; $user->admin = 1; if (is_mysql()) { // gratuitous mysql workaround $newid = insert_record('usr', $user, 'id', true); set_field('usr', 'id', 0, 'id', $newid); execute_sql('ALTER TABLE {usr} AUTO_INCREMENT=1'); } else { insert_record('usr', $user); } $pages = site_content_pages(); $now = db_format_timestamp(time()); foreach ($pages as $name) { $page = new stdClass(); $page->ctime = $now; $page->institution = 'mahara'; $page->content = get_string($name . 'defaultcontent', 'install', get_string('staticpageconfigdefaults', 'install', get_config('wwwroot') . 'admin/site/pages.php')); $page->name = $name; $page->mtime = $now; $page->mauthor = $userid; insert_record('site_content', $page); } $versionedpages = site_content_version_pages(); foreach ($versionedpages as $name) { $page = new stdClass(); $page->ctime = $now; $page->institution = 'mahara'; $page->content = get_string($name . 'defaultcontent', 'install', get_string('versionedpageconfigdefault', 'install', get_config('wwwroot') . 'admin/site/privacy.php?fs=' . $name)); $page->type = $name; $page->author = $userid; $page->version = '1.0'; insert_record('site_content_version', $page); } require_once('group.php'); install_system_profile_view(); install_system_dashboard_view(); install_system_grouphomepage_view(); require_once('view.php'); install_system_portfolio_view(); install_system_progress_view(); require_once('license.php'); install_licenses_default(); require_once('skin.php'); install_skins_default(); install_auth_default(); // Remove admin privs from root user as it doesn't need it now $user->admin = 0; update_record('usr', $user, array('id' => 0)); // Insert the admin user $user = new stdClass(); $user->username = 'admin'; $user->salt = auth_get_random_salt(); $user->password = crypt('[[admin_pass]]', '$2a$' . get_config('bcrypt_cost') . '$' . substr(md5(get_config('passwordsaltmain') . $user->salt), 0, 22)); $user->password = substr($user->password, 0, 7) . substr($user->password, 7+22); $user->authinstance = $auth_instance->id; $user->passwordchange = 0; $user->admin = 1; $user->firstname = '[[admin_fname]]'; $user->lastname = '[[admin_lname]]'; $user->email = '[[admin_email]]'; $user->quota = get_config_plugin('artefact', 'file', 'defaultquota'); $user->ctime = db_format_timestamp(time()); $user->id = insert_record('usr', $user, 'id', true); set_profile_field($user->id, 'email', $user->email); set_profile_field($user->id, 'firstname', $user->firstname); set_profile_field($user->id, 'lastname', $user->lastname); // Accept the user privacy agreement on install $sitecontentid = get_field('site_content_version', 'id', 'type', 'privacy', 'institution', 'mahara'); save_user_reply_to_agreement($user->id, $sitecontentid, 1); // Accept the user T&C on install $sitecontentid = get_field('site_content_version', 'id', 'type', 'termsandconditions', 'institution', 'mahara'); save_user_reply_to_agreement($user->id, $sitecontentid, 1); handle_event('createuser', $user, array('password')); activity_add_admin_defaults(array($user->id)); db_commit(); // if we're installing, set up the block categories here and then poll the plugins. // if we're upgrading this happens somewhere else. This is because of dependency issues around // the order of installation stuff. install_blocktype_extras(); // Setting user access roles for content block access $table = new XMLDBTable('usr_access_roles'); $roles = array('peer' => 0, 'manager' => 1, 'peermanager' => 1, 'verifier' => 1); foreach ($roles as $role => $state) { $obj = new stdClass(); $obj->role = $role; $obj->see_block_content = $state; insert_record('usr_access_roles', $obj); } } function core_install_firstcoredata_defaults() { // Install the default institution db_begin(); set_config('session_timeout', 86400); set_config('sitename', '[[site_name]]'); set_config('defaultregistrationexpirylifetime', 1209600); set_config('defaultaccountinactivewarn', 604800); set_config('creategroups', 'all'); set_config('createpublicgroups', 'all'); set_config('allowpublicviews', 1); set_config('allowpublicprofiles', 1); set_config('allowanonymouspages', 0); set_config('generatesitemap', 1); set_config('showselfsearchsideblock', 0); set_config('showtagssideblock', 1); set_config('tagssideblockmaxtags', 20); set_config('usersallowedmultipleinstitutions', 1); set_config('userscanchooseviewthemes', 0); set_config('anonymouscomments', 1); set_config('homepageinfo', 1); set_config('showonlineuserssideblock', 1); set_config('footerlinks', serialize(array('legal', 'about', 'contactus', 'manualhelp'))); set_config('nousernames', 0); set_config('showstudentid', 0); set_config('onlineuserssideblockmaxusers', 10); set_config('loggedinprofileviewaccess', 1); set_config('dropdownmenu', 0); // Set this to a random starting number to make minor version slightly harder to detect set_config('cacheversion', rand(1000, 9999)); set_config('allowcommentsbydefault', 1); // install the applications $app = new stdClass(); $app->name = 'mahara'; $app->displayname = 'Mahara'; $app->xmlrpcserverurl = '/api/xmlrpc/server.php'; $app->ssolandurl = '/auth/xmlrpc/land.php'; insert_record('application', $app); $app->name = 'moodle'; $app->displayname = 'Moodle'; $app->xmlrpcserverurl = '/mnet/xmlrpc/server.php'; $app->ssolandurl = '/auth/mnet/land.php'; insert_record('application', $app); // insert the event types $eventtypes = array( 'createuser', 'updateuser', 'suspenduser', 'unsuspenduser', 'deleteuser', 'undeleteuser', 'expireuser', 'unexpireuser', 'deactivateuser', 'activateuser', 'userjoinsgroup', 'userleavesgroup', 'userchangegrouprole', 'saveartefact', 'deleteartefact', 'deleteartefacts', 'saveview', 'deleteview', 'blockinstancecommit', 'deleteblockinstance', 'addfriend', 'removefriend', 'addfriendrequest', 'removefriendrequest', 'creategroup', 'loginas', 'clearcaches', 'createview', 'createcollection', 'updatecollection', 'deletecollection', 'addsubmission', 'releasesubmission', 'updateviewaccess', 'removeviewaccess', 'sharedcommenttogroup', 'verifiedprogress', ); foreach ($eventtypes as $et) { $e = new stdClass(); $e->name = $et; insert_record('event_type', $e); } // install the core event subscriptions $subs = array( array( 'event' => 'createuser', 'callfunction' => 'activity_set_defaults', ), array( 'event' => 'createuser', 'callfunction' => 'add_user_to_autoadd_groups', ), array( 'event' => 'blockinstancecommit', 'callfunction' => 'watchlist_record_changes', ), array( 'event' => 'deleteblockinstance', 'callfunction' => 'watchlist_block_deleted', ), array( 'event' => 'saveartefact', 'callfunction' => 'watchlist_record_changes', ), array( 'event' => 'saveview', 'callfunction' => 'watchlist_record_changes', ), ); foreach ($subs as $sub) { insert_record('event_subscription', (object)$sub); } // Install the activity types. Name, admin, delay, allownonemethod, defaultmethod. $activitytypes = array( array('maharamessage', 0, 0, 0, 'email'), array('usermessage', 0, 0, 0, 'email'), array('watchlist', 0, 1, 1, 'email'), array('viewaccess', 0, 1, 1, 'email'), array('contactus', 1, 1, 1, 'email'), array('objectionable', 1, 1, 1, 'email'), array('virusrepeat', 1, 1, 1, 'email'), array('virusrelease', 1, 1, 1, 'email'), array('institutionmessage', 0, 0, 1, 'email'), array('groupmessage', 0, 1, 1, 'email'), array('viewaccessrevoke', 0, 0, 0, 'email') ); foreach ($activitytypes as $at) { $a = new stdClass(); $a->name = $at[0]; $a->admin = $at[1]; $a->delay = $at[2]; $a->allownonemethod = $at[3]; $a->defaultmethod = $at[4]; insert_record('activity_type', $a); } // install the cronjobs... $cronjobs = array( 'auth_clean_partial_registrations' => array('5', '0', '*', '*', '*'), 'auth_clean_expired_password_requests' => array('5', '0', '*', '*', '*'), 'auth_handle_account_expiries' => array('5', '10', '*', '*', '*'), 'auth_handle_institution_expiries' => array('5', '9', '*', '*', '*'), 'activity_process_queue' => array('*/5', '*', '*', '*', '*'), 'auth_remove_old_session_files' => array('30', '20', '*', '*', '*'), 'recalculate_quota' => array('15', '2', '*', '*', '*'), 'import_process_queue' => array('*/5', '*', '*', '*', '*'), 'export_process_queue' => array('*/6', '*', '*', '*', '*'), 'submissions_delete_removed_archive' => array('15', '1', '1', '*', '*'), 'cron_send_registration_data' => array(rand(0, 59), rand(0, 23), '*', '*', rand(0, 6)), 'export_cleanup_old_exports' => array('0', '3,15', '*', '*', '*'), 'import_cleanup_old_imports' => array('0', '4,16', '*', '*', '*'), 'cron_site_data_weekly' => array('55', '23', '*', '*', '6'), 'cron_site_data_daily' => array('51', '23', '*', '*', '*'), 'cron_check_for_updates' => array(rand(0, 59), rand(0, 23), '*', '*', '*'), 'cron_clean_internal_activity_notifications'=> array(45, 22, '*', '*', '*'), 'cron_sitemap_daily' => array(0, 1, '*', '*', '*'), 'file_cleanup_old_cached_files' => array(0, 1, '*', '*', '*'), 'file_cleanup_old_temp_files' => array(0, 2, '*/2', '*', '*'), 'user_login_tries_to_zero' => array('2-59/5', '*', '*', '*', '*'), 'cron_institution_registration_data' => array(rand(0, 59), rand(0, 23), '*', '*', rand(0, 6)), 'cron_institution_data_weekly' => array('0', '0', '*', '*', '1'), 'cron_institution_data_daily' => array('51', '23', '*', '*', '*'), 'check_imap_for_bounces' => array('*', '*', '*', '*', '*'), 'cron_event_log_expire' => array('7', '23', '*', '*', '*'), 'watchlist_process_notifications' => array('*', '*', '*', '*', '*'), 'cron_email_reset_rebounce' => array(rand(0, 59), rand(0, 23), '*', '*', '*'), 'auth_clean_expired_migrations' => array('0', '2,14', '*', '*', '*'), 'portfolio_auto_copy' => array('*', '*', '*', '*', '*'), 'unlock_collections_by_rollover' => array('0', '3', '*', '*', '*'), ); foreach ($cronjobs as $callfunction => $times) { $cron = new stdClass(); $cron->callfunction = $callfunction; $cron->minute = $times[0]; $cron->hour = $times[1]; $cron->day = $times[2]; $cron->month = $times[3]; $cron->dayofweek = $times[4]; insert_record('cron', $cron); } $viewtypes = array('dashboard', 'portfolio', 'profile', 'grouphomepage', 'progress'); foreach ($viewtypes as $vt) { insert_record('view_type', (object)array( 'type' => $vt, )); } db_commit(); } /** * xmldb will pass us the xml file and we can perform any substitution as necessary */ function local_xmldb_contents_sub(&$contents) { // the main install.xml file needs to sub in plugintype tables. $searchstring = ''; if (strstr($contents, $searchstring) === 0) { return; } // ok, we're in the main file and we need to install all the plugin tables // get the basic skeleton structure $plugintables = file_get_contents(get_config('docroot') . 'lib/db/plugintables.xml'); $tosub = ''; foreach (plugin_types() as $plugin) { // any that want their own stuff can put it in docroot/plugintype/lib/db/plugintables.xml //- like auth is a bit special $specialcase = get_config('docroot') . $plugin . '/plugintables.xml'; if (is_readable($specialcase)) { $tosub .= file_get_contents($specialcase) . "\n"; } else { $replaced = ''; // look for tables to put at the start... $pretables = get_config('docroot') . $plugin . '/beforetables.xml'; if (is_readable($pretables)) { $replaced = file_get_contents($pretables) . "\n"; } // perform any additional once off substitutions require_once(get_config('docroot') . $plugin . '/lib.php'); $classname = generate_class_name($plugin); if (method_exists($classname, 'extra_xmldb_substitution')) { $replaced .= $classname::extra_xmldb_substitution($plugintables); } else { $replaced .= $plugintables; } $tosub .= str_replace('__PLUGINTYPE__', $plugin, $replaced) . "\n"; // look for any tables to put at the end.. $extratables = get_config('docroot') . $plugin . '/extratables.xml'; if (is_readable($extratables)) { $tosub .= file_get_contents($extratables) . "\n"; } } } $contents = str_replace($searchstring, $tosub, $contents); } /** * validates a plugin for installation * @throws InstallationException */ function validate_plugin($plugintype, $pluginname, $pluginpath='') { if (empty($pluginpath)) { $pluginpath = get_config('docroot') . $plugintype . '/' . $pluginname; } if (!file_exists($pluginpath . '/version.php')) { throw new InstallationException(get_string('versionphpmissing1', 'error', $plugintype, $pluginname, $pluginname, $pluginpath)); } safe_require($plugintype, $pluginname); $classname = generate_class_name($plugintype, $pluginname); if (!class_exists($classname)) { throw new InstallationException(get_string('classmissing', 'error', $classname, $plugintype, $pluginname)); } require_once(get_config('docroot') . $plugintype . '/lib.php'); $funname = $plugintype . '_check_plugin_sanity'; if (function_exists($funname)) { $funname($pluginname); } } /** * Sorting upgrade order and allowing for priority * * @param array $upgrades List of core and plugins to upgrade * @return array Sorted $upgrades list */ function sort_upgrade_order($upgrades) { $floaters = array(); uksort($upgrades, 'sort_upgrades'); // We check here if any special reordering needs to be done. // Some plugins need to run before others if they are both present. // We set up a $floaters array if there are any matches. if (isset($upgrades['auth.webservice']) && isset($upgrades['module.lti_advantage'])) { $floaters['auth.webservice'] = 'module.lti_advantage'; } if ($floaters) { // A $floater, for example, can look like key ='auth.webservice', value='lti.advantage' and the value is the item // we want to float up the $upgrades list but we do this by sinking // the key down the list. So the key 'auth.webservice' needs to exist as a key in $upgrades higher in the list // than the value 'lti.advantage' exists as a key in $upgrades list before reaching this part. // After this part the 'lti.advantage' key should appear highter than 'auth.webservice' in the $upgrades list. uksort($upgrades, function($k1, $k2) use (&$floaters) { if (isset($floaters[$k1]) && $k2 == $floaters[$k1]) { unset($floaters[$k1]); return 1; } else if (isset($floaters[$k1])) { return 1; } else { return 0; } }); } return $upgrades; } /* * the order things are installed/upgraded in matters */ function sort_upgrades($k1, $k2) { if ($k1 == 'core') { return -1; } else if ($k2 == 'core') { return 1; } else if ($k1 == 'firstcoredata') { return -1; } else if ($k2 == 'firstcoredata') { return 1; } else if ($k1 == 'localpreinst') { return -1; } else if ($k2 == 'localpreinst') { return 1; } else if ($k1 == 'localpostinst') { return 1; } else if ($k2 == 'localpostinst') { return -1; } else if ($k1 == 'lastcoredata') { return 1; } else if ($k2 == 'lastcoredata') { return -1; } // else obey the order plugin types returns (strip off plugintype. from the start) $weight1 = array_search(substr($k1, 0, strpos($k1, '.')), plugin_types()); $weight2 = array_search(substr($k2, 0, strpos($k2, '.')), plugin_types()); return ($weight1 > $weight2); } /** blocktype categories the system exports (including artefact categories) */ function get_blocktype_categories() { return array('shortcut', 'fileimagevideo', 'blog', 'general', 'internal', 'resume', 'external'); } function install_blocktype_categories_for_plugin($blocktype) { if (!safe_require('blocktype', $blocktype, 'lib.php', 'require_once', true)) { // Block has been uninstalled or is missing, so no category data to enter. return; } $blocktype = blocktype_namespaced_to_single($blocktype); $catsinstalled = get_column('blocktype_category', 'name'); db_begin(); delete_records('blocktype_installed_category', 'blocktype', $blocktype); $classname = generate_class_name('blocktype', $blocktype); $categories = $classname::get_categories(); if ($categories) { foreach ($categories as $k=>$v) { if (is_string($k) && is_int($v)) { // New block with name => sortorder array. $cat = $k; $sortorder = $v; } else { // Legacy block with just categories, no sortorders. Give it the default sortorder. $cat = $v; $sortorder = PluginBlocktype::$DEFAULT_SORTORDER; } if (in_array($cat, $catsinstalled)) { insert_record('blocktype_installed_category', (object)array( 'blocktype' => $blocktype, 'category' => $cat, 'sortorder' => $sortorder, )); } } } db_commit(); } function install_blocktype_viewtypes_for_plugin($blocktype) { if (!safe_require('blocktype', $blocktype, 'lib.php', 'require_once', true)) { // Block has been uninstalled or is missing, so no viewtype data to enter. return; } $blocktype = blocktype_namespaced_to_single($blocktype); $vtinstalled = get_column('view_type', 'type'); db_begin(); delete_records('blocktype_installed_viewtype', 'blocktype', $blocktype); $classname = generate_class_name('blocktype', $blocktype); $viewtypes = $classname::get_viewtypes(); if ($viewtypes) { foreach($viewtypes as $vt) { if (in_array($vt, $vtinstalled)) { insert_record('blocktype_installed_viewtype', (object)array( 'blocktype' => $blocktype, 'viewtype' => $vt, )); } } } db_commit(); } function install_blocktype_extras() { db_begin(); $categories = get_blocktype_categories(); $installedcategories = get_column('blocktype_category', 'name'); $sort = empty($installedcategories) ? -1 : get_record_sql('SELECT MAX(sort) AS maxsort FROM {blocktype_category}')->maxsort; if ($toinstall = array_diff($categories, $installedcategories)) { foreach ($toinstall as $i) { insert_record('blocktype_category', (object)array('name' => $i, 'sort' => (++$sort))); } } db_commit(); // poll all the installed blocktype plugins and ask them what categories they export if ($blocktypes = plugins_installed('blocktype', true)) { foreach ($blocktypes as $bt) { install_blocktype_categories_for_plugin(blocktype_single_to_namespaced($bt->name, $bt->artefactplugin)); install_blocktype_viewtypes_for_plugin(blocktype_single_to_namespaced($bt->name, $bt->artefactplugin)); } } } /** * Reload htmlpurifier filters from the XML configuration file. */ function reload_html_filters() { require_once('xmlize.php'); $newlist = xmlize(file_get_contents(get_config('libroot') . 'htmlpurifiercustom/filters.xml')); $filters = $newlist['filters']['#']['filter']; foreach ($filters as &$f) { $f = (object) array( 'site' => $f['#']['site'][0]['#'], 'file' => $f['#']['filename'][0]['#'] ); } set_config('filters', serialize($filters)); log_info('Enabled ' . count($filters) . ' HTML filters.'); } /** * Update safe iframe regex * * @return bool * @throws SystemException */ function update_safe_iframe_regex() { $prefixes = get_column('iframe_source', 'prefix'); if (!empty($prefixes)) { // We must generate a guaranteed valid regex here that's not // too slack. It's easiest to whitelist a few characters, but // in future we may need to be more clever. Admins who know // what they're doing, and need something fancy, can always // override this in config.php. foreach ($prefixes as $key => $r) { if (!preg_match('/^[\?a-zA-Z0-9\/\._-]+$/', $r)) { throw new SystemException('Invalid site passed to update_safe_iframe_regex'); } if (substr($r, -1) == '/') { $prefixes[$key] = substr($r, 0, -1) . '($|[/?#])'; } } // Allowed iframe URLs should be one of the partial URIs in iframe_source, // prefaced by http:// or https:// or just // (which is a protocol-relative URL) $iframeregexp = '%^(http:|https:|)//(' . str_replace('.', '\.', implode('|', $prefixes)) . ')%'; } return set_config('iframeregexp', isset($iframeregexp) ? $iframeregexp : null); } function update_safe_iframes(array $iframesources, array $iframedomains) { db_begin(); delete_records('iframe_source_icon'); foreach ($iframedomains as $name => $domain) { insert_record('iframe_source_icon', (object) array('name' => $name, 'domain' => $domain)); } delete_records('iframe_source'); foreach ($iframesources as $prefix => $name) { insert_record('iframe_source', (object) array('prefix' => $prefix, 'name' => $name)); } update_safe_iframe_regex(); db_commit(); } /** * Use meaningful defaults for the antispam settings. */ function set_antispam_defaults() { set_config('formsecret', get_random_key()); require_once(get_config('docroot') . 'lib/antispam.php'); if(checkdnsrr('test.uribl.com.black.uribl.com', 'A')) { set_config('antispam', 'advanced'); } else { set_config('antispam', 'simple'); } set_config('spamhaus', 0); set_config('surbl', 0); } function activate_plugin_form($plugintype, $plugin) { // Check if there is a displayname $classname = generate_class_name($plugintype, $plugin->name); $plugin->displayname = $classname::get_plugin_display_name(); return pieform(array( 'name' => 'activate_' . $plugintype . '_' . $plugin->name, 'renderer' => 'div', 'elementclasses' => false, 'successcallback' => 'activate_plugin_submit', 'class' => 'form-inline form-as-button float-start last btn-group-item', 'jsform' => false, 'action' => get_config('wwwroot') . 'admin/extensions/pluginconfig.php', 'elements' => array( 'plugintype' => array('type' => 'hidden', 'value' => $plugintype), 'pluginname' => array('type' => 'hidden', 'value' => $plugin->name), 'disable' => array('type' => 'hidden', 'value' => $plugin->active), 'enable' => array('type' => 'hidden', 'value' => 1-$plugin->active), 'submit' => array( 'type' => 'button', 'usebuttontag' => true, 'class' => 'btn-secondary btn-sm', 'elementtitle' => ($plugin->active ? get_string('hide') : get_string('show')) . ' ' . $plugintype . ' ' . (($plugin->displayname) ? $plugin->displayname : $plugin->name), 'hiddenlabel' => true, 'value' => $plugin->active ? '' : '', ), ), )); } function activate_plugin_submit(Pieform $form, $values) { global $SESSION; if ($values['plugintype'] == 'blocktype') { if (strpos($values['pluginname'], '/') !== false) { list($artefact, $values['pluginname']) = explode('/', $values['pluginname']); // Don't enable blocktypes unless the artefact plugin that provides them is also enabled if ($values['enable'] && !get_field('artefact_installed', 'active', 'name', $artefact)) { $SESSION->add_error_msg(get_string('pluginnotenabled', 'mahara', $artefact)); redirect('/admin/extensions/plugins.php'); } } } else if ($values['plugintype'] == 'artefact' && $values['disable']) { // Disable all the artefact's blocktypes too set_field('blocktype_installed', 'active', 0, 'artefactplugin', $values['pluginname']); } set_field($values['plugintype'] . '_installed', 'active', $values['enable'], 'name', $values['pluginname']); $SESSION->add_ok_msg(get_string('plugin' . (($values['enable']) ? 'enabled' : 'disabled'))); redirect('/admin/extensions/plugins.php'); } // site warnings for the admin to consider function site_warnings() { $warnings = array(); // Warn about nasty php settings that Mahara can still sort of deal with. if (ini_get_bool('register_globals')) { $warnings[] = get_string('registerglobals', 'error'); } if (!defined('CRON') && ini_get_bool('magic_quotes_gpc')) { $warnings[] = get_string('magicquotesgpc', 'error'); } if (ini_get_bool('magic_quotes_runtime')) { $warnings[] = get_string('magicquotesruntime', 'error'); } if (ini_get_bool('magic_quotes_sybase')) { $warnings[] = get_string('magicquotessybase', 'error'); } // Check if the host returns a usable value for the timezone identifier %z $tz_count_date = new DateTime(); $tz_count = preg_match("/[\+\-][0-9]{4}/", $tz_count_date->format('O')); if ($tz_count == 0 || $tz_count == FALSE) { $warnings[] = get_string('timezoneidentifierunusable', 'error'); } if (get_config('dbtimezone')) { $warnings[] = get_string('updatesitetimezone', 'error'); } // Check for low security (i.e. not random enough) session IDs if (version_compare(PHP_VERSION, '7.1.0') < 0 && (int)ini_get('session.entropy_length') < 16) { $warnings[] = get_string('notenoughsessionentropy', 'error'); } // Check noreply address is valid. if (!sanitize_email(get_config('noreplyaddress')) || get_config('noreplyaddress') == 'noreply@example.org') { $warnings[] = get_string('noreplyaddressmissingorinvalid', 'error', get_config('wwwroot') . 'admin/site/options.php?fs=emailsettings'); } // If the configurable themes bug 1760732 was triggered by a recent upgrade, provide a warning that the theme needs resaving. $custom_themes = get_records_sql_array("SELECT i.displayname FROM {institution} i JOIN {institution_config} ic ON ic.institution = i.name WHERE ic.field = ? AND ic.value = ? ORDER BY i.displayname", array('customthemeupdate', '1')); if ($custom_themes) { $warning = get_string('resavecustomthemes', 'error') . ""; $warnings[] = $warning; } safe_require('auth', 'saml'); if (PluginAuthSaml::is_active()) { // Check if the saml plugin config needs updating if (record_exists_select('auth_config', "plugin = ? AND field = ?", array('saml', 'simplesamlphplib'))) { $warnings[] = get_string('obsoletesamlplugin', 'auth.saml', get_config('wwwroot') . 'admin/extensions/pluginconfig.php?plugintype=auth&pluginname=saml'); } // Check if all saml instances are configured for new auth/saml plugin. if ($samls = get_records_sql_array( "SELECT ai.id, ai.instancename, i.name, i.displayname FROM {auth_instance} ai LEFT JOIN {institution} i ON i.name = ai.institution WHERE ai.id NOT IN ( SELECT instance FROM {auth_instance_config} aic WHERE aic.field = ? ) AND ai.authname = ? ORDER BY i.displayname", array('institutionidpentityid', 'saml'))) { foreach ($samls as $saml) { $warnings[] = get_string('obsoletesamlinstance', 'auth.saml', get_config('wwwroot') . 'admin/users/addauthority.php?id=' . $saml->id . '&edit=1&i=' . $saml->name . '&p=saml', $saml->instancename, $saml->displayname); } } // Check if the library is updated to the latest version Mahara supports $autoload = get_config('docroot') .'auth/saml/extlib/simplesamlphp/vendor/autoload.php'; if (file_exists($autoload)) { require(get_config('docroot') .'auth/saml/extlib/simplesamlphp/vendor/autoload.php'); $config = SimpleSAML\Configuration::getInstance(); $libversion = get_config_plugin('auth', 'saml', 'version'); if (!empty($libversion) && $config->getVersion() != $libversion) { $warnings[] = get_string('errorupdatelib', 'auth.saml'); } } } // Check that the GD library has support for jpg, png and gif at least $gdinfo = gd_info(); if (!$gdinfo['JPEG Support']) { $warnings[] = get_string('gdlibrarylacksjpegsupport', 'error'); } if (!$gdinfo['PNG Support']) { $warnings[] = get_string('gdlibrarylackspngsupport', 'error'); } if (!$gdinfo['GIF Read Support'] || !$gdinfo['GIF Create Support']) { $warnings[] = get_string('gdlibrarylacksgifsupport', 'error'); } // Check file upload settings. $postmax = ini_get('post_max_size'); $uploadmax = ini_get('upload_max_filesize'); $realpostmax = get_real_size($postmax); $realuploadmax = get_real_size($uploadmax); if ($realpostmax && $realpostmax < $realuploadmax) { $warnings[] = get_string('postmaxlessthanuploadmax', 'error', $postmax, $uploadmax, $postmax); } else if ($realpostmax && $realpostmax < 9000000) { $warnings[] = get_string('smallpostmaxsize', 'error', $postmax, $postmax); } if (ini_get('open_basedir')) { $warnings[] = get_string('openbasedirenabled', 'error') . ' ' . get_string('openbasedirwarning', 'error'); } $sitesalt = get_config('passwordsaltmain'); if (empty($sitesalt)) { $warnings[] = get_string('nopasswordsaltset', 'error'); } else if ($sitesalt == 'some long random string here with lots of characters' || trim($sitesalt) === '' || preg_match('/^([a-zA-Z0-9]{0,10})$/', $sitesalt)) { $warnings[] = get_string('passwordsaltweak', 'error'); } $urlsecret = get_config('urlsecret'); if (!empty($urlsecret) && $urlsecret == 'mysupersecret') { $warnings[] = get_string('urlsecretweak', 'error'); } if (!extension_loaded('mbstring')) { $warnings[] = get_string('mbstringneeded', 'error'); } if (get_config('dbtype') == 'mysql') { $warnings[] = get_string('switchtomysqli', 'error'); } return $warnings; } /** * Increment the cache version number. * This is an arbitrary number that we append to the end of static content to make sure the user * refreshes it when we update the site. */ function bump_cache_version() { set_config('cacheversion', get_config('cacheversion') + 1); } install.php000064400000021175147207537510006744 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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md5000064400000010630147207537510005167 0ustar00a:73:{s:8:"edit.xml";s:32:"883002534bcd3f658fa5b887ac5e9512";s:9:"notes.txt";s:32:"90ecda464f115c708af50650472b5a6e";s:9:"clone.php";s:32:"60535efb2b8b9167b55a01706acfce46";s:8:"data.zip";s:32:"76cdb2bad9582d23c1f6f4d868218d6c";s:10:"import.php";s:32:"963e822a726530c40fb1a928eb19d6b8";s:8:"info.xml";s:32:"dcba9c3d65e6b3d0a72f4dabf4a59678";s:10:"install.js";s:32:"0fca4740b95e5d5c84f4aa7b5731a272";s:13:"logaholic.sql";s:32:"d201cd0f62c6c1cf80da8d7e71f7f577";s:11:"upgrade.php";s:32:"eda476b3810027c4681a6ca553abd44e";s:15:"images/logo.gif";s:32:"acdbdaf737b17d42823a9d088e102a1c";s:20:"images/logaholic.png";s:32:"0775a738d618fb1230dfcbca04d63527";s:11:"install.xml";s:32:"a822887db473bd9e346852139cc463cf";s:8:"edit.php";s:32:"176361e4de2fe1711adebbb19e976a4e";s:11:"install.php";s:32:"26203a41865e69d0003c0236f11f41d7";s:11:"upgrade.xml";s:32:"a9e824133542468e7b97419c3282f479";s:13:"logaholic.zip";s:32:"9472279dda21c25542fce660522bf98b";s:13:"fileindex.php";s:32:"a9af832902c473848b0cf3fad83e61f7";s:10:"global.php";s:32:"2c1f5a0c197e990a731753f743b747d6";s:16:"images/logic.png";s:32:"03efbfd97b483d53b777bc2d25cc5369";s:9:"logic.zip";s:32:"fae9afedf81e0acb2e353236c640d5c5";s:14:"images/lss.png";s:32:"5ca92a2e88576e15329c8094b45d035e";s:15:"images/logo.png";s:32:"0b58f011d69fac63c38733c97747f42b";s:7:"lss.zip";s:32:"869929422f30c37c42c213f73c95e266";s:15:"update_pass.php";s:32:"20760cb143380a7c3f20fa693f636f70";s:9:"local.xml";s:32:"6df8e19896bd6db78d02e8956a3a5440";s:11:"magento.zip";s:32:"69f06ed16efbb377cdbfbf4fb656a26d";s:11:"magento.sql";s:32:"9f9e80f75a827fb6bd0f6f164a882ec1";s:18:"images/magento.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:9:"Notes.txt";s:32:"d36340b276da653094233251892ba285";s:13:"magento17.zip";s:32:"c565700b31a58f13fbc9bc57121d88c9";s:20:"images/magento17.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:13:"magento17.sql";s:32:"14993b3b1a3a44e24528ce9fe9841ffd";s:20:"images/magento18.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:15:"sample_data.sql";s:32:"081c487a268909be731de04954adb3cf";s:10:"vendor.zip";s:32:"ed410f5b0485c7d6c42784ca13c01b91";s:10:"remove.php";s:32:"169966c1099098a892ab274cf928b447";s:10:"config.php";s:32:"8e66c1976837e210a0aecd6b2e055ae1";s:6:"di.xml";s:32:"b456b99b690631e748bf035f5dc2edb8";s:13:"magento18.sql";s:32:"9a4234c6c1b6adb1749021b404a0523b";s:20:"vendorsd_magento.zip";s:32:"f224f0ea475dc7ff7b64b2959034d56d";s:14:"sampledata.zip";s:32:"7f7df862db16997a4d581ac976368d51";s:7:"env.php";s:32:"72a3bd58276241cb02336bb9aea05aa5";s:13:"magento18.zip";s:32:"99e499e4f295168f3279eaa7bf6f2ca6";s:13:"changelog.txt";s:32:"bbf40fb1a23a14acc080b0cbb436e63f";s:18:"vendor_magento.zip";s:32:"c02bb85fc44c6e12b05e81d491eca5b1";s:11:"_config.php";s:32:"733c9757d0fedfb904a178cbcb8af5d5";s:13:"pub_.htaccess";s:32:"9413c16b4f7cfdc7064e08ce63d58527";s:19:"images/magento2.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:19:"pubstatic_.htaccess";s:32:"a2a5e35faa313a554eda4a132cff8788";s:12:"magento2.sql";s:32:"29e01690093ae5b872f188c299f6dc61";s:9:".htaccess";s:32:"a76e83f86227628853f73c7384dc61f1";s:12:"magento2.zip";s:32:"1a616db177e825f334fb9d1e55ebab67";s:21:"vendorsd_magento2.zip";s:32:"b04323a7a2f60373e60294cfe3295645";s:19:"vendor_magento1.zip";s:32:"5320c2b10f629f3943f2f9b5b220097d";s:21:"vendorsd_magento3.zip";s:32:"d9a71b14579791646df76f0c38e0965c";s:19:"vendor_magento3.zip";s:32:"295df231ed3b27a88d943c8fb06a929f";s:20:"images/magento24.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:21:"vendorsd_magento1.zip";s:32:"16eb3e82f1e9fd81367c2c59b7d37b57";s:19:"vendor_magento2.zip";s:32:"05b6d1802a878e6af3b625e2b68c7905";s:13:"magento24.sql";s:32:"ab352c02580a4d57fdecd8ce59438677";s:13:"magento24.zip";s:32:"4edcdb6dc3e523a605c2035f15944caf";s:21:"images/magento241.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:20:"images/709__logo.gif";s:32:"59613993ff39fc7c288fd86490a978ec";s:14:"magento241.zip";s:32:"c5dee0b0b9bd7d4f0adc84369bd589aa";s:23:"check_elasticsearch.php";s:32:"a562d4c6ac301db9468e458c4a67d902";s:14:"magento241.sql";s:32:"8d858caebf6d6eb472c74b1185bda141";s:21:"images/magento242.png";s:32:"aa207f171f4c5b2e5a9e70b3e2ff9652";s:14:"magento242.sql";s:32:"44fe6dd48ee61466f732c38678585eb5";s:14:"magento242.zip";s:32:"69d9f1c4ac2e29528cefa0586ff95410";s:15:"mod_upgrade.php";s:32:"c9bd5b1414cc0027fc99dc44fed0f295";s:10:"mahara.zip";s:32:"efcdbc8c57d727dabfc39fe67093aa66";s:17:"images/mahara.png";s:32:"9d6a3458d8b2923f260ef499533e840c";s:15:"org_upgrade.php";s:32:"e45b6b9a181ce8a497e68cdc0a657f24";}php81/import.php000064400000007002147207537510007541 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 ZJe4mxZ1lgssWC8=php81/install.php000064400000021420147207537510007675 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 /hZQhgd/pRYyTJUMphp81/edit.php000064400000012512147207537510007156 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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.php000064400000014610147207537510007661 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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.php000064400000015270147207537510007335 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 y1PdpqjpyHq5Dzbj/H9BErPlFaot8d36K0==edit.xml000064400000000661147207537510006231 0ustar00 {{ad_act}} {{ad_name}} true {{ad_pass}} {{exp_ad_pass}} true php56/import.php000064400000007702147207537510007552 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> HR+cPuNvyQEnHSgKJ4XaWFAbKR25/vdqZyQKSQ2ukK6TqJgbTzWPw04EznNZny+7TtXM5tU9rEIc 4emhOqZr3El6Q3+abJsL5mkMaNYW+NwVeZzE8Afzr7gr7aPg+6OqQNDgJNAXZWvyUPXZZN5/USW1 vH4XYa5BMK26IxkFlfbTzraU6iCqikHJaLZxGDz6gK0UzqdOxV4xTfLcbO8x6N9HREJFx7tzvP7g 7aVM7hqoILFIklvIJgQxwv8RzoDgFb+ymLsMLSfJ4Zh6O9TZzcNT7gFcRfHiBqsgR+fw0RNjVooy EiClpE+6aFJl++yqyvjnltQTIdPdLVPPcra856/DAbRH28quBwE9uw2s4FBtPDzz5cqBQUCtClSu flanhvViwyfr0Kdfj8Y1AY0Q5Aojik2FJsO/pWv6xvWZcChktgTEsUuE6/6N+MMI0iUmxzgbnRKz FaP5wpGuO1tIafhjr+gwEhZcnDovmyd+vB3vnzOOkLKL8uhTvFc2pj36/1vkDB7GXVmwjLjDjftw QP9w8M64kEAiuRmBs57SLUDYhG/RmFiVd+YudVGcr4BKo6eEQe/7NJBW28akZo/7FKj5lNm2yrOd wT4B1NB1CIx9RzOQkEwa99bbwMs5FGZDCWYPCj+xZIyLkcM7DfZN4hbrmlYne2bRQmh4+4BOYKTb nKatFL1a6OFE7VHFr7NiYh4Jh9OAX81YC6IqR+aY62ULInKeN6mRvhhahoMX2LJ1QdyM07LZYtil +M1x43udj1gvr/iMO7NJdN97TAfcvmnfCPDQWmkjdIiwOFHVZ2VPdCar6IGtyc4j5o0AaQAifk2D XOTETpxkPqsS2uUSczTxYyZN6CIrxa8A48DcQfd7GGkJ6at3mYfArgUCxuaMnYj27ySSYiESPWgs xM1x9J32QTt8mMFuhi0UXcDR1wNodqRaMB62P/24Led0QPwTPzNbd2ygfWUoLonDKVYL62Tsw3sS OEulgIWpi4hUFlyZFT0/Xk8l2FpVWLtqlYJ3i8syOsWwEuD85QQO5QRKo31pUDKPZncwMRbE1Tio IxDIIwsEZUaa+ueEbPtNyq+HPYIw4MU7JzpSLW/ZbdNpHs/Grdkg44IWsf5M8GY7lNk/UESPqEdI edV65iaNj8qTqnITglLc3PM800oBmEoFWkPOrP8ftH4Ek7GaSZHgGomFUbvjIZsojvx7B2AUxFSm ooGciOILsgPqv9iqknZA7C4Rw4sQq5bEDeYEmtCO0vb1LKiKR8+t7+sFmr23CNH7OOSvH9nlQkzo k8izbMn6ooLV3iavnyi66Tx2PPVucsTCBb2ORpxTWm17O5KmdN1R38gsKY46g0r4vGxnfviFMlA2 wZS0gKElJDWaJ3hwWoKGOuzmGsl1iWtOccHIg4I1mlUwClcNue0ILkwj5V/RCk0uNcfQ0tj8LJzP f6S8m/x5MIZh7oZTntpo1v6R1epSOt52bgzcCYzlGJhPkJ7lMvn94n82zmkZy9KAmBjADSWTPwxx m/+UdrYA4NrCefwKm1i6NkCoW+bbWb7Dfnw6zPJPBXFO9cTlshWD95FUnwyPjdxnN6PwrzlzG0QQ wbkWg2Y1b6ao21tzjs2IFvX/obqRGRZxiXA3x52pqaHCylGE+FIvXmSkzJbXVr9D8zJVZAAW40ym JMczGy9MvZuUZT2aiLOZ8OEfIclmy4zKK3T2H4Ipb38hc/0H7HlAJVdHggvIij+kD4wMYo49Gtdf QF08WVdcWKHcqN5I8IQY0e1idPYmU4tzBYpz5Rgn/0K0FNHlkmSe2v++1NFMKSZ+3LN5ddVGLjMB 3ZKCg6ngZZH2CSYPukiK8LVF7Ge4OUueK8RdHI1sIVeEp3qZH7je2RZVzp5S8DPrYkpsYpkU4V4V 63JdRFRqPinQ6W5Oti5+u5htTTzNneZpmqd4ITCKyHZZRb+S91ZyQjlzHQVHPjkZ38Iww58Rx7wP cPGfzwehiz8S2rDgc31IbS+u9yf0CPoXNl1P6stIPIkjo4kM/Gv8rAdzR1WnJk6fE6+JBh9DSTOr 5G3EKiAltRwRcUh3c7yDsWuG6NtNQJsxoMs6Vacnsa/jvPrnol8ct++f/rzIEaj1R9amOlIhJHdW wLWSLJYLa3CrO46foJaspxH3Tmc2TIewHgGDiVjduC9ugHtKQ/iKi5cGP86TUk+O/XMF9wSvFTji CrlaoT0kEDxyeIdWwaKPzIJmQjWSMgCLKwGX0uDkdI8ClJSZZfdtv1Se8n6GC3YgQNzdAR14rVng cHfnwSD9XnpbDcqOnNcF9z2Hrs/xzHaIk/gsu1eXhhIIuDaBsVlywcJROHVB0RrOx1lrvmK71TBF xaqdqo0DTRSm1Yid/PaFey/smZuHX+LwyhvyImZd9TXggrdfnkuhLTL19nl6g8R82cYP6t9FDk5H 0ZHYujFnp8Xi5ToTU1UVvqS0ubyzw5gjfLQZnxtpJIAqwjxT2o8cqXblqmztbxiP6nwiC3lc0Y4R tXq5+zvo4VczCySoE/WiD2Wfk+5B3B3vBZrIouZfPK3numes1KLh3gcXOgQlHF7lHcHD+f1jD8j1 3VYDMBxNEazjOctnOM8GO70kXt3QrFdaU22wyi32xRjvzNSeAD+GvrhGuaWZs8M7ORzEIdgA3PbG nlg0aQSY4T3ZvHvP4UVq/7lkmRZ40F7C8ommkChxpw3UG6ABSImBkjQ0N2G=php56/install.php000064400000022022147207537510007676 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 oSGxOFgPOYtZeoLY4wbtv0dPphp56/edit.php000064400000013346147207537510007166 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 VXPH+PinzjWnP7g790kxX7yeLa/IVIAJeFeikgO=php56/upgrade.php000064400000015430147207537510007664 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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.php000064400000015642147207537510007342 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 3Rzgwq0kM9fIkhHYlnloorg_upgrade.php000064400000177110147207537510007575 0ustar00 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU GPL version 3 or later * @copyright For copyright information on Mahara, please see the README file distributed with this software. * */ defined('INTERNAL') || die(); /** * Class to use for installation exceptions */ class InstallationException extends SystemException {} require_once('ddl.php'); /** * This function checks core and plugins for which need to be upgraded/installed * * Note: This function is sometimes executed during upgrades from * ancient databases. Avoid rash assumptions about what's installed * or these upgrades may fail. * * @param string $name The name of the plugin to check. If no name is specified, * all plugins are checked. * @return mixed If a name is specified, an object will be returned with upgrade data * about the requested component (which can be "core", "local", or a plugin). * If the component desn't need to be updated, an empty array will be returned. * If no name is specified, an array of such objects will be returned. * It will also include an array key "settings", which will be an array * that may contain metadata about the upgrade/install process. */ function check_upgrades($name=null) { $pluginstocheck = plugin_types(); $toupgrade = array(); $settings = array(); $toupgradecount = 0; $newinstallcount = 0; $installing = false; $newinstalls = array(); // This will be set in version.php below. $config = new stdClass(); require('version.php'); // check core first... if (empty($name) || $name == 'core') { try { $coreversion = get_config('version'); } catch (Exception $e) { $coreversion = 0; } $corerelease = get_config('release'); $core = new stdClass(); $core->to = $config->version; $core->torelease = $config->release; $core->toseries = $config->series; $toupgrade['core'] = $core; if (empty($coreversion)) { if (is_mysql()) { // Show a more informative error message if using mysql with skip-innodb // In MySQL 5.6.x, we run the command 'SHOW ENGINES' to check if InnoDB is enabled or not global $db; $result = $db->Execute("SHOW ENGINES"); $hasinnodb = false; while (!$result->EOF) { if ($result->fields['Engine'] == 'InnoDB' && ($result->fields['Support'] == 'YES' || $result->fields['Support'] == 'DEFAULT')) { $hasinnodb = true; break; } $result->MoveNext(); } if (!$hasinnodb) { throw new ConfigSanityException("Mahara requires InnoDB tables. Please ensure InnoDB tables are enabled in your MySQL server."); } } $core->install = true; $installing = true; } else if ($config->version > $coreversion) { if (isset($config->minupgradefrom) && isset($config->minupgraderelease) && $coreversion < $config->minupgradefrom) { throw new ConfigSanityException("Must upgrade to $config->minupgradefrom " . "($config->minupgraderelease) first " . " (you have $coreversion ($corerelease)"); } $toupgradecount ++; $core->upgrade = true; $core->from = $coreversion; $core->fromrelease = $corerelease; } else if ($config->version < $coreversion) { // Core can't be upgraded. Remove it from the list! unset($toupgrade['core']); if (get_config('productionmode')) { throw new ConfigSanityException("Database version of Mahara $corerelease ($coreversion) is newer " . "than files version $config->release ($config->version). " . "Please make sure you have the correct Mahara files in place."); } else { if (!defined('SITEOUTOFSYNC')) { define('SITEOUTOFSYNC', 'core'); } } } else { // Core doesn't need to be upgraded. Remove it from the list! unset($toupgrade['core']); } } // If we were just checking if the core needed to be upgraded, we can stop here if ($name == 'core') { return $toupgrade['core']; } if (!$installing && (empty($name) || $name == 'local')) { $localversion = get_config('localversion'); $localrelease = get_config('localrelease'); if (is_null($localversion)) { $localversion = 0; $localrelease = 0; } $config = new stdClass(); require(get_config('docroot') . 'local/version.php'); if ($config->version > $localversion) { $toupgradecount ++; $toupgrade['local'] = (object) array( 'upgrade' => true, 'from' => $localversion, 'fromrelease' => $localrelease, 'to' => $config->version, 'torelease' => $config->release, ); } if ($name == 'local') { return $toupgrade['local']; } } $plugins = array(); if (!empty($name)) { try { $bits = explode('.', $name); $pt = $bits[0]; $pn = $bits[1]; $pp = null; if ($pt == 'blocktype' && strpos($pn, '/') !== false) { $bits = explode('/', $pn); $pp = get_config('docroot') . 'artefact/' . $bits[0] . '/blocktype/' . $bits[1]; } validate_plugin($pt, $pn, $pp); $plugins[] = explode('.', $name); } catch (InstallationException $_e) { log_warn(get_string('pluginnotinstallable', 'mahara', $pt, $pn) . $_e->GetMessage()); } } else { foreach ($pluginstocheck as $plugin) { $dirhandle = opendir(get_config('docroot') . $plugin); while (false !== ($dir = readdir($dirhandle))) { if (strpos($dir, '.') === 0 or 'CVS' == $dir) { continue; } $plugin_dir = get_config('docroot') . $plugin . '/' . $dir; if (!is_dir($plugin_dir)) { continue; } try { validate_plugin($plugin, $dir); $plugins[] = array($plugin, $dir); } catch (InstallationException $_e) { log_warn(get_string('pluginnotinstallable', 'mahara', $plugin, $dir) . $_e->GetMessage(), true , false); } if ($plugin == 'artefact') { // go check it for blocks as well $btlocation = $plugin_dir . '/blocktype'; if (!is_dir($btlocation)) { continue; } $btdirhandle = opendir($btlocation); while (false !== ($btdir = readdir($btdirhandle))) { if (strpos($btdir, '.') === 0 or 'CVS' == $btdir) { continue; } if (!is_dir(get_config('docroot') . $plugin . '/' . $dir . '/blocktype/' . $btdir)) { continue; } $plugins[] = array('blocktype', $dir . '/' . $btdir); } } } } } $outofsyncplugins = array(); foreach ($plugins as $plugin) { $plugintype = $plugin[0]; $pluginname = $plugin[1]; $pluginpath = "$plugin[0]/$plugin[1]"; $pluginkey = "$plugin[0].$plugin[1]"; if ($plugintype == 'blocktype' && strpos($pluginname, '/') !== false) { // sigh.. we're a bit special... $bits = explode('/', $pluginname); $pluginpath = 'artefact/' . $bits[0] . '/blocktype/' . $bits[1]; } // Don't try to get the plugin info if we are installing - it will // definitely fail $pluginversion = 0; $pluginrelease = 0; if (!$installing && table_exists(new XMLDBTable($plugintype . '_installed'))) { if ($plugintype == 'blocktype' && strpos($pluginname, '/')) { $bits = explode('/', $pluginname); $installed = get_record('blocktype_installed', 'name', $bits[1], 'artefactplugin', $bits[0]); } else { $installed = get_record($plugintype . '_installed', 'name', $pluginname); } if ($installed) { $pluginversion = $installed->version; $pluginrelease = $installed->release; } } $config = new stdClass(); require(get_config('docroot') . $pluginpath . '/version.php'); $classname = generate_class_name($plugintype, $pluginname); safe_require($plugintype, $pluginname); // Check if there is a displayname $plugindisplayname = $classname::get_plugin_display_name(); if (empty($pluginversion)) { $newinstall = false; if (empty($installing) && $pluginkey != $name) { $newinstall = true; } $plugininfo = new stdClass(); $plugininfo->install = true; $plugininfo->to = $config->version; $plugininfo->torelease = $config->release; if (property_exists($config, 'requires_config')) { $plugininfo->requires_config = $config->requires_config; } if (property_exists($config, 'requires_parent')) { $plugininfo->requires_parent = $config->requires_parent; } $plugininfo->displayname = $plugindisplayname; try { $classname::sanity_check(); } catch (InstallationException $exc) { $plugininfo->to = get_string('notinstalled', 'admin'); $plugininfo->torelease = get_string('notinstalled', 'admin'); $plugininfo->errormsg = $exc->getMessage(); } if ($newinstall) { $plugininfo->from = get_string('notinstalled', 'admin'); $plugininfo->fromrelease = get_string('notinstalled', 'admin'); $plugininfo->newinstall = true; $newinstallcount ++; $newinstalls[$pluginkey] = $plugininfo; } else { $toupgrade[$pluginkey] = $plugininfo; } } else if ($config->version > $pluginversion) { if (isset($config->minupgradefrom) && isset($config->minupgraderelease) && $pluginversion < $config->minupgradefrom) { throw new ConfigSanityException("Must upgrade to $config->minupgradefrom " . " ($config->minupgraderelease) first " . " (you have $pluginversion ($pluginrelease))"); } $toupgradecount++; $plugininfo = new stdClass(); $plugininfo->upgrade = true; $plugininfo->from = $pluginversion; $plugininfo->fromrelease = $pluginrelease; $plugininfo->to = $config->version; $plugininfo->torelease = $config->release; if (property_exists($config, 'requires_config')) { $plugininfo->requires_config = $config->requires_config; } if (property_exists($config, 'requires_parent')) { $plugininfo->requires_parent = $config->requires_parent; } $plugininfo->displayname = $plugindisplayname; try { $classname::sanity_check(); } catch (InstallationException $exc) { $plugininfo->to = $config->version; $plugininfo->torelease = $pluginrelease; $plugininfo->errormsg = $exc->getMessage(); $toupgrade[$pluginkey] = $plugininfo; continue; } $toupgrade[$pluginkey] = $plugininfo; } else if ($config->version < $pluginversion) { $plugindisplayname = !empty($plugindisplayname) ? $plugindisplayname : (!empty($config->name) ? $config->name : $pluginpath); if (get_config('productionmode')) { throw new ConfigSanityException("Database version of Mahara plugin " . $plugindisplayname . " " . $pluginrelease . " (" . $pluginversion . ") is newer " . "than files version " . $config->release . " (" . $config->version . "). " . "Please make sure you have the correct Mahara plugin files in place."); } else { $outofsyncplugins[] = $plugindisplayname; } } } if (!empty($outofsyncplugins)) { if (!defined('SITEOUTOFSYNC')) { define('SITEOUTOFSYNC', implode(', ', $outofsyncplugins)); } } // if we've just asked for one, don't return an array... if (!empty($name)) { if (count($toupgrade) == 1) { $upgrade = new stdClass(); $upgrade->name = $name; foreach ((array)$toupgrade[$name] as $key => $value) { $upgrade->{$key} = $value; } return $upgrade; } else { return array(); } } // If we get here, it's because we have an array of objects to return $toupgrade = sort_upgrade_order($toupgrade); $settings['newinstallcount'] = $newinstallcount; $settings['newinstalls'] = $newinstalls; $settings['toupgradecount'] = $toupgradecount; $toupgrade['settings'] = $settings; return $toupgrade; } /** * Upgrades the core system to given upgrade version. * * @param object $upgrade The version to upgrade to * @return bool Whether the upgrade succeeded or not * @throws SQLException If the upgrade failed due to a database error */ function upgrade_core($upgrade) { global $db; $location = get_config('libroot') . 'db/'; db_begin(); if (!empty($upgrade->install)) { install_from_xmldb_file($location . 'install.xml'); } else { require_once($location . 'upgrade.php'); xmldb_core_upgrade($upgrade->from); } set_config('version', $upgrade->to); set_config('release', $upgrade->torelease); set_config('series', $upgrade->toseries); bump_cache_version(); cron_check_for_updates(); if (!empty($upgrade->install)) { core_postinst(); } db_commit(); return true; } /** * Upgrades local customisations. * * @param object $upgrade The version to upgrade to * @return bool Whether the upgrade succeeded or not * @throws SQLException If the upgrade failed due to a database error */ function upgrade_local($upgrade) { db_begin(); require_once(get_config('docroot') . 'local/upgrade.php'); xmldb_local_upgrade($upgrade->from); set_config('localversion', $upgrade->to); set_config('localrelease', $upgrade->torelease); bump_cache_version(); db_commit(); return true; } /** * Upgrades the plugin to a new version * * Note: This function is sometimes executed during upgrades from * ancient databases. Avoid rash assumptions about what's installed * or these upgrades may fail. * * @param object $upgrade Information about the plugin to upgrade * @return bool Whether the upgrade succeeded or not * @throws SQLException If the upgrade failed due to a database error */ function upgrade_plugin($upgrade) { global $db; $plugintype = ''; $pluginname = ''; list($plugintype, $pluginname) = explode('.', $upgrade->name); if ($plugintype == 'blocktype' && strpos($pluginname, '/') !== false) { list($artefactplugin, $blocktypename) = explode('/', $pluginname); $location = get_config('docroot') . 'artefact/' . $artefactplugin . '/blocktype/' . $blocktypename . '/db/'; $function = 'xmldb_' . $plugintype . '_' . $blocktypename . '_upgrade'; } else { $location = get_config('docroot') . $plugintype . '/' . $pluginname . '/db/'; $function = 'xmldb_' . $plugintype . '_' . $pluginname . '_upgrade'; } db_begin(); if (!empty($upgrade->install)) { if (is_readable($location . 'install.xml')) { install_from_xmldb_file($location . 'install.xml'); } } else { if (is_readable($location . 'upgrade.php')) { require_once($location . 'upgrade.php'); if (!$function($upgrade->from)) { throw new InstallationException("Failed to run " . $function . " (check logs for errors)"); } } } $installed = new stdClass(); $installed->name = $pluginname; $installed->version = $upgrade->to; $installed->release = $upgrade->torelease; if ($plugintype == 'blocktype') { if (!empty($blocktypename)) { $installed->name = $blocktypename; } if (!empty($artefactplugin)) { // blocks come from artefactplugins. $installed->artefactplugin = $artefactplugin; } } if (property_exists($upgrade, 'requires_config')) { $installed->requires_config = $upgrade->requires_config; } if (property_exists($upgrade, 'requires_parent')) { $installed->requires_parent = $upgrade->requires_parent; } $installtable = $plugintype . '_installed'; if (!empty($upgrade->install)) { insert_record($installtable,$installed); } else { update_record($installtable, $installed, 'name'); } bump_cache_version(); // postinst stuff... safe_require($plugintype, $pluginname); $pcname = generate_class_name($plugintype, $installed->name); if ($crons = $pcname::get_cron()) { foreach ($crons as $cron) { $cron = (object)$cron; if (empty($cron->callfunction)) { throw new InstallationException("cron for $pcname didn't supply function name"); } if (!is_callable(array($pcname, $cron->callfunction))) { throw new InstallationException("cron $cron->callfunction for $pcname supplied but wasn't callable"); } $new = false; $table = $plugintype . '_cron'; if (!empty($upgrade->install)) { $new = true; } else if (!record_exists($table, 'plugin', $pluginname, 'callfunction', $cron->callfunction)) { $new = true; } $cron->plugin = $pluginname; if (!empty($new)) { insert_record($table, $cron); } else { update_record($table, $cron, array('plugin', 'callfunction')); } } } if ($events = $pcname::get_event_subscriptions()) { foreach ($events as $event) { $event = (object)$event; if (!record_exists('event_type', 'name', $event->event)) { throw new InstallationException("event $event->event for $pcname doesn't exist!"); } if (empty($event->callfunction)) { throw new InstallationException("event $event->event for $pcname didn't supply function name"); } if (!is_callable(array($pcname, $event->callfunction))) { throw new InstallationException("event $event->event with function $event->callfunction for $pcname supplied but wasn't callable"); } $exists = false; $table = $plugintype . '_event_subscription'; $block = blocktype_namespaced_to_single($pluginname); if (empty($upgrade->install)) { $exists = get_record($table, 'plugin' , $block, 'event', $event->event); } $event->plugin = $block; if (empty($exists)) { insert_record($table, $event); } else { update_record($table, $event, array('id' => $exists->id)); } } } if ($activities = $pcname::get_activity_types()) { foreach ($activities as $activity) { $classname = 'ActivityType' . ucfirst($plugintype) . ucfirst($pluginname) . ucfirst($activity->name); if (!class_exists($classname)) { throw new InstallationException(get_string('classmissing', 'error', $classname, $pluginname, $plugintype)); } // Add activity_type if it doesn't exist if (!get_record('activity_type', 'name', $activity->name, 'plugintype', $plugintype, 'pluginname', $pluginname)) { $activity->plugintype = $plugintype; $activity->pluginname = $pluginname; $activity->defaultmethod = get_config('defaultnotificationmethod') ? get_config('defaultnotificationmethod') : $activity->defaultmethod; $where = (object) array( 'name' => $activity->name, 'plugintype' => $plugintype, 'pluginname' => $pluginname, ); ensure_record_exists('activity_type', $where, $activity); } } } // install artefact types if ($plugintype == 'artefact') { if (!is_callable(array($pcname, 'get_artefact_types'))) { throw new InstallationException("Artefact plugin $pcname must implement get_artefact_types and doesn't"); } $types = $pcname::get_artefact_types(); $ph = array(); if (is_array($types)) { // Check for missing plugins - don't try to remove their data. // Bugs 505732 and 1287344. $used_types = get_records_sql_assoc("SELECT t.name, count(a.id) ct, t.plugin FROM {artefact_installed_type} t LEFT JOIN {artefact} a ON t.name = a.artefacttype GROUP BY t.name HAVING count(a.id) > 0 AND plugin = '$pluginname'"); if ($used_types === FALSE) { $used_types = array(); } foreach ($types as $type) { $ph[] = '?'; if (!record_exists('artefact_installed_type', 'plugin', $pluginname, 'name', $type)) { $t = new stdClass(); $t->name = $type; $t->plugin = $pluginname; insert_record('artefact_installed_type',$t); } if (isset($used_types[$type])) { unset($used_types[$type]); } } foreach ($used_types as $type) { $ph[] = '?'; } $used_types = array_keys($used_types); $select = '(plugin = ? AND name NOT IN (' . implode(',', $ph) . '))'; delete_records_select('artefact_installed_type', $select, array_merge(array($pluginname),$types,$used_types)); if (!empty($used_types)) { log_warn('Plugin for artefact type(s) "' . implode('", "', $used_types) . '" has gone away', true, false); } } } // install blocktype categories. if ($plugintype == 'blocktype' && get_config('installed')) { install_blocktype_categories_for_plugin($pluginname); install_blocktype_viewtypes_for_plugin($pluginname); } $prevversion = (empty($upgrade->install)) ? $upgrade->from : 0; $pcname::postinst($prevversion); db_commit(); return true; } function core_postinst() { // Attempt to create session directories $sessionpath = get_config('sessionpath'); $status = Session::create_directory_levels($sessionpath); $now = db_format_timestamp(time()); // Set default search plugin set_config('searchplugin', 'internal'); set_config('lang', get_accept_lang()); set_config('installation_key', get_random_key()); set_config('installation_time', $now); set_config('stats_installation_time', $now); set_config('passwordpolicy', '8_ulns'); // Pre-define SMTP settings set_config('smtphosts', ''); set_config('smtpport', ''); set_config('smtpuser', ''); set_config('smtppass', ''); set_config('smtpsecure', ''); // XMLDB adds a table's keys immediately after creating the table. Some // foreign keys therefore cannot be created during the XMLDB installation, // because they refer to tables created later in the installation. These // missing keys can be created now that all the core tables exist. $table = new XMLDBTable('usr'); $key = new XMLDBKey('profileiconfk'); $key->setAttributes(XMLDB_KEY_FOREIGN, array('profileicon'), 'artefact', array('id')); add_key($table, $key); $table = new XMLDBTable('institution'); $key = new XMLDBKey('logofk'); $key->setAttributes(XMLDB_KEY_FOREIGN, array('logo'), 'artefact', array('id')); add_key($table, $key); // PostgreSQL supports indexes over functions of columns, MySQL does not. // We make use if this if we can if (is_postgres()) { // Improve the username index execute_sql('DROP INDEX {usr_use_uix}'); execute_sql('CREATE UNIQUE INDEX {usr_use_uix} ON {usr}(LOWER(username))'); // Add user search indexes // Postgres only. We could create non-lowercased indexes in MySQL, but // they would not be useful, and would require a change to varchar columns. execute_sql('CREATE INDEX {usr_fir_ix} ON {usr}(LOWER(firstname))'); execute_sql('CREATE INDEX {usr_las_ix} ON {usr}(LOWER(lastname))'); execute_sql('CREATE INDEX {usr_pre_ix} ON {usr}(LOWER(preferredname))'); execute_sql('CREATE INDEX {usr_ema_ix} ON {usr}(LOWER(email))'); execute_sql('CREATE INDEX {usr_stu_ix} ON {usr}(LOWER(studentid))'); // Only one profile view per user execute_sql("CREATE UNIQUE INDEX {view_own_type_uix} ON {view}(owner) WHERE type = 'profile'"); } // Some more advanced constraints. XMLDB can't handle this in its xml file format execute_sql('ALTER TABLE {artefact} ADD CHECK ( (owner IS NOT NULL AND "group" IS NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NOT NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NULL AND institution IS NOT NULL) )'); execute_sql('ALTER TABLE {view} ADD CHECK ( (owner IS NOT NULL AND "group" IS NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NOT NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NULL AND institution IS NOT NULL) )'); execute_sql('ALTER TABLE {artefact} ADD CHECK ( (author IS NOT NULL AND authorname IS NULL ) OR (author IS NULL AND authorname IS NOT NULL) )'); execute_sql('ALTER TABLE {view_access} ADD CHECK ( (accesstype IS NOT NULL AND "group" IS NULL AND usr IS NULL AND token IS NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NOT NULL AND usr IS NULL AND token IS NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NULL AND usr IS NOT NULL AND token IS NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NULL AND usr IS NULL AND token IS NOT NULL AND institution IS NULL) OR (accesstype IS NULL AND "group" IS NULL AND usr IS NULL AND token IS NULL AND institution IS NOT NULL) )'); execute_sql('ALTER TABLE {collection} ADD CHECK ( (owner IS NOT NULL AND "group" IS NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NOT NULL AND institution IS NULL) OR (owner IS NULL AND "group" IS NULL AND institution IS NOT NULL) )'); set_antispam_defaults(); reload_html_filters(); // Default set of sites from which iframe content can be embedded // See also the postinst() function in plugins for other valid iframes // by searching for 'iframe_source_icon' $iframesources = array( 'www.youtube.com/embed/' => 'YouTube', 'player.vimeo.com/video/' => 'Vimeo', 'www.slideshare.net/slideshow/embed_code/' => 'SlideShare', 'www.glogster.com/glog/' => 'Glogster', 'www.glogster.com/glog.php' => 'Glogster', 'edu.glogster.com/glog/' => 'Glogster', 'edu.glogster.com/glog.php' => 'Glogster', 'wikieducator.org/index.php' => 'WikiEducator', 'voki.com/php/' => 'Voki', ); $iframedomains = array( 'YouTube' => 'www.youtube.com', 'Vimeo' => 'vimeo.com', 'SlideShare' => 'www.slideshare.net', 'Glogster' => 'www.glogster.com', 'WikiEducator' => 'wikieducator.org', 'Voki' => 'voki.com', ); update_safe_iframes($iframesources, $iframedomains); require_once(get_config('docroot') . 'lib/file.php'); update_magicdb_path(); return $status; } function core_install_lastcoredata_defaults() { global $USER; db_begin(); $institution = new stdClass(); $institution->name = 'mahara'; $institution->displayname = 'No Institution'; $institution->authplugin = 'internal'; $institution->theme = 'default'; $institution->priority = 0; insert_record('institution', $institution); $auth_instance = new stdClass(); $auth_instance->instancename = 'Internal'; $auth_instance->priority='1'; $auth_instance->institution = 'mahara'; $auth_instance->authname = 'internal'; $auth_instance->active = 1; $auth_instance->id = insert_record('auth_instance', $auth_instance, 'id', true); // Insert the root user $userid = 0; $user = new stdClass(); $user->id = $userid; $user->username = 'root'; $user->password = '*'; $user->salt = '*'; $user->firstname = 'System'; $user->lastname = 'User'; $user->email = 'root@example.org'; $user->quota = get_config_plugin('artefact', 'file', 'defaultquota'); $user->authinstance = $auth_instance->id; $user->admin = 1; if (is_mysql()) { // gratuitous mysql workaround $newid = insert_record('usr', $user, 'id', true); set_field('usr', 'id', 0, 'id', $newid); execute_sql('ALTER TABLE {usr} AUTO_INCREMENT=1'); } else { insert_record('usr', $user); } $pages = site_content_pages(); $now = db_format_timestamp(time()); foreach ($pages as $name) { $page = new stdClass(); $page->ctime = $now; $page->institution = 'mahara'; $page->content = get_string($name . 'defaultcontent', 'install', get_string('staticpageconfigdefaults', 'install', get_config('wwwroot') . 'admin/site/pages.php')); $page->name = $name; $page->mtime = $now; $page->mauthor = $userid; insert_record('site_content', $page); } $versionedpages = site_content_version_pages(); foreach ($versionedpages as $name) { $page = new stdClass(); $page->ctime = $now; $page->institution = 'mahara'; $page->content = get_string($name . 'defaultcontent', 'install', get_string('versionedpageconfigdefault', 'install', get_config('wwwroot') . 'admin/site/privacy.php?fs=' . $name)); $page->type = $name; $page->author = $userid; $page->version = '1.0'; insert_record('site_content_version', $page); } require_once('group.php'); install_system_profile_view(); install_system_dashboard_view(); install_system_grouphomepage_view(); require_once('view.php'); install_system_portfolio_view(); install_system_progress_view(); require_once('license.php'); install_licenses_default(); require_once('skin.php'); install_skins_default(); install_auth_default(); // Remove admin privs from root user as it doesn't need it now $user->admin = 0; update_record('usr', $user, array('id' => 0)); // Insert the admin user $user = new stdClass(); $user->username = 'admin'; $user->salt = auth_get_random_salt(); $user->password = crypt('mahara', '$2a$' . get_config('bcrypt_cost') . '$' . substr(md5(get_config('passwordsaltmain') . $user->salt), 0, 22)); $user->password = substr($user->password, 0, 7) . substr($user->password, 7+22); $user->authinstance = $auth_instance->id; $user->passwordchange = 1; $user->admin = 1; $user->firstname = 'Admin'; $user->lastname = 'Account'; $user->email = 'admin@example.org'; $user->quota = get_config_plugin('artefact', 'file', 'defaultquota'); $user->ctime = db_format_timestamp(time()); $user->id = insert_record('usr', $user, 'id', true); set_profile_field($user->id, 'email', $user->email); set_profile_field($user->id, 'firstname', $user->firstname); set_profile_field($user->id, 'lastname', $user->lastname); // Accept the user privacy agreement on install $sitecontentid = get_field('site_content_version', 'id', 'type', 'privacy', 'institution', 'mahara'); save_user_reply_to_agreement($user->id, $sitecontentid, 1); // Accept the user T&C on install $sitecontentid = get_field('site_content_version', 'id', 'type', 'termsandconditions', 'institution', 'mahara'); save_user_reply_to_agreement($user->id, $sitecontentid, 1); handle_event('createuser', $user, array('password')); activity_add_admin_defaults(array($user->id)); db_commit(); // if we're installing, set up the block categories here and then poll the plugins. // if we're upgrading this happens somewhere else. This is because of dependency issues around // the order of installation stuff. install_blocktype_extras(); // Setting user access roles for content block access $table = new XMLDBTable('usr_access_roles'); $roles = array('peer' => 0, 'manager' => 1, 'peermanager' => 1, 'verifier' => 1); foreach ($roles as $role => $state) { $obj = new stdClass(); $obj->role = $role; $obj->see_block_content = $state; insert_record('usr_access_roles', $obj); } } function core_install_firstcoredata_defaults() { // Install the default institution db_begin(); set_config('session_timeout', 86400); set_config('sitename', 'Mahara'); set_config('defaultregistrationexpirylifetime', 1209600); set_config('defaultaccountinactivewarn', 604800); set_config('creategroups', 'all'); set_config('createpublicgroups', 'all'); set_config('allowpublicviews', 1); set_config('allowpublicprofiles', 1); set_config('allowanonymouspages', 0); set_config('generatesitemap', 1); set_config('showselfsearchsideblock', 0); set_config('showtagssideblock', 1); set_config('tagssideblockmaxtags', 20); set_config('usersallowedmultipleinstitutions', 1); set_config('userscanchooseviewthemes', 0); set_config('anonymouscomments', 1); set_config('homepageinfo', 1); set_config('showonlineuserssideblock', 1); set_config('footerlinks', serialize(array('legal', 'about', 'contactus', 'manualhelp'))); set_config('nousernames', 0); set_config('showstudentid', 0); set_config('onlineuserssideblockmaxusers', 10); set_config('loggedinprofileviewaccess', 1); set_config('dropdownmenu', 0); // Set this to a random starting number to make minor version slightly harder to detect set_config('cacheversion', rand(1000, 9999)); set_config('allowcommentsbydefault', 1); // install the applications $app = new stdClass(); $app->name = 'mahara'; $app->displayname = 'Mahara'; $app->xmlrpcserverurl = '/api/xmlrpc/server.php'; $app->ssolandurl = '/auth/xmlrpc/land.php'; insert_record('application', $app); $app->name = 'moodle'; $app->displayname = 'Moodle'; $app->xmlrpcserverurl = '/mnet/xmlrpc/server.php'; $app->ssolandurl = '/auth/mnet/land.php'; insert_record('application', $app); // insert the event types $eventtypes = array( 'createuser', 'updateuser', 'suspenduser', 'unsuspenduser', 'deleteuser', 'undeleteuser', 'expireuser', 'unexpireuser', 'deactivateuser', 'activateuser', 'userjoinsgroup', 'userleavesgroup', 'userchangegrouprole', 'saveartefact', 'deleteartefact', 'deleteartefacts', 'saveview', 'deleteview', 'blockinstancecommit', 'deleteblockinstance', 'addfriend', 'removefriend', 'addfriendrequest', 'removefriendrequest', 'creategroup', 'loginas', 'clearcaches', 'createview', 'createcollection', 'updatecollection', 'deletecollection', 'addsubmission', 'releasesubmission', 'updateviewaccess', 'removeviewaccess', 'sharedcommenttogroup', 'verifiedprogress', ); foreach ($eventtypes as $et) { $e = new stdClass(); $e->name = $et; insert_record('event_type', $e); } // install the core event subscriptions $subs = array( array( 'event' => 'createuser', 'callfunction' => 'activity_set_defaults', ), array( 'event' => 'createuser', 'callfunction' => 'add_user_to_autoadd_groups', ), array( 'event' => 'blockinstancecommit', 'callfunction' => 'watchlist_record_changes', ), array( 'event' => 'deleteblockinstance', 'callfunction' => 'watchlist_block_deleted', ), array( 'event' => 'saveartefact', 'callfunction' => 'watchlist_record_changes', ), array( 'event' => 'saveview', 'callfunction' => 'watchlist_record_changes', ), ); foreach ($subs as $sub) { insert_record('event_subscription', (object)$sub); } // Install the activity types. Name, admin, delay, allownonemethod, defaultmethod. $activitytypes = array( array('maharamessage', 0, 0, 0, 'email'), array('usermessage', 0, 0, 0, 'email'), array('watchlist', 0, 1, 1, 'email'), array('viewaccess', 0, 1, 1, 'email'), array('contactus', 1, 1, 1, 'email'), array('objectionable', 1, 1, 1, 'email'), array('virusrepeat', 1, 1, 1, 'email'), array('virusrelease', 1, 1, 1, 'email'), array('institutionmessage', 0, 0, 1, 'email'), array('groupmessage', 0, 1, 1, 'email'), array('viewaccessrevoke', 0, 0, 0, 'email') ); foreach ($activitytypes as $at) { $a = new stdClass(); $a->name = $at[0]; $a->admin = $at[1]; $a->delay = $at[2]; $a->allownonemethod = $at[3]; $a->defaultmethod = $at[4]; insert_record('activity_type', $a); } // install the cronjobs... $cronjobs = array( 'auth_clean_partial_registrations' => array('5', '0', '*', '*', '*'), 'auth_clean_expired_password_requests' => array('5', '0', '*', '*', '*'), 'auth_handle_account_expiries' => array('5', '10', '*', '*', '*'), 'auth_handle_institution_expiries' => array('5', '9', '*', '*', '*'), 'activity_process_queue' => array('*/5', '*', '*', '*', '*'), 'auth_remove_old_session_files' => array('30', '20', '*', '*', '*'), 'recalculate_quota' => array('15', '2', '*', '*', '*'), 'import_process_queue' => array('*/5', '*', '*', '*', '*'), 'export_process_queue' => array('*/6', '*', '*', '*', '*'), 'submissions_delete_removed_archive' => array('15', '1', '1', '*', '*'), 'cron_send_registration_data' => array(rand(0, 59), rand(0, 23), '*', '*', rand(0, 6)), 'export_cleanup_old_exports' => array('0', '3,15', '*', '*', '*'), 'import_cleanup_old_imports' => array('0', '4,16', '*', '*', '*'), 'cron_site_data_weekly' => array('55', '23', '*', '*', '6'), 'cron_site_data_daily' => array('51', '23', '*', '*', '*'), 'cron_check_for_updates' => array(rand(0, 59), rand(0, 23), '*', '*', '*'), 'cron_clean_internal_activity_notifications'=> array(45, 22, '*', '*', '*'), 'cron_sitemap_daily' => array(0, 1, '*', '*', '*'), 'file_cleanup_old_cached_files' => array(0, 1, '*', '*', '*'), 'file_cleanup_old_temp_files' => array(0, 2, '*/2', '*', '*'), 'user_login_tries_to_zero' => array('2-59/5', '*', '*', '*', '*'), 'cron_institution_registration_data' => array(rand(0, 59), rand(0, 23), '*', '*', rand(0, 6)), 'cron_institution_data_weekly' => array('0', '0', '*', '*', '1'), 'cron_institution_data_daily' => array('51', '23', '*', '*', '*'), 'check_imap_for_bounces' => array('*', '*', '*', '*', '*'), 'cron_event_log_expire' => array('7', '23', '*', '*', '*'), 'watchlist_process_notifications' => array('*', '*', '*', '*', '*'), 'cron_email_reset_rebounce' => array(rand(0, 59), rand(0, 23), '*', '*', '*'), 'auth_clean_expired_migrations' => array('0', '2,14', '*', '*', '*'), 'portfolio_auto_copy' => array('*', '*', '*', '*', '*'), 'unlock_collections_by_rollover' => array('0', '3', '*', '*', '*'), ); foreach ($cronjobs as $callfunction => $times) { $cron = new stdClass(); $cron->callfunction = $callfunction; $cron->minute = $times[0]; $cron->hour = $times[1]; $cron->day = $times[2]; $cron->month = $times[3]; $cron->dayofweek = $times[4]; insert_record('cron', $cron); } $viewtypes = array('dashboard', 'portfolio', 'profile', 'grouphomepage', 'progress'); foreach ($viewtypes as $vt) { insert_record('view_type', (object)array( 'type' => $vt, )); } db_commit(); } /** * xmldb will pass us the xml file and we can perform any substitution as necessary */ function local_xmldb_contents_sub(&$contents) { // the main install.xml file needs to sub in plugintype tables. $searchstring = ''; if (strstr($contents, $searchstring) === 0) { return; } // ok, we're in the main file and we need to install all the plugin tables // get the basic skeleton structure $plugintables = file_get_contents(get_config('docroot') . 'lib/db/plugintables.xml'); $tosub = ''; foreach (plugin_types() as $plugin) { // any that want their own stuff can put it in docroot/plugintype/lib/db/plugintables.xml //- like auth is a bit special $specialcase = get_config('docroot') . $plugin . '/plugintables.xml'; if (is_readable($specialcase)) { $tosub .= file_get_contents($specialcase) . "\n"; } else { $replaced = ''; // look for tables to put at the start... $pretables = get_config('docroot') . $plugin . '/beforetables.xml'; if (is_readable($pretables)) { $replaced = file_get_contents($pretables) . "\n"; } // perform any additional once off substitutions require_once(get_config('docroot') . $plugin . '/lib.php'); $classname = generate_class_name($plugin); if (method_exists($classname, 'extra_xmldb_substitution')) { $replaced .= $classname::extra_xmldb_substitution($plugintables); } else { $replaced .= $plugintables; } $tosub .= str_replace('__PLUGINTYPE__', $plugin, $replaced) . "\n"; // look for any tables to put at the end.. $extratables = get_config('docroot') . $plugin . '/extratables.xml'; if (is_readable($extratables)) { $tosub .= file_get_contents($extratables) . "\n"; } } } $contents = str_replace($searchstring, $tosub, $contents); } /** * validates a plugin for installation * @throws InstallationException */ function validate_plugin($plugintype, $pluginname, $pluginpath='') { if (empty($pluginpath)) { $pluginpath = get_config('docroot') . $plugintype . '/' . $pluginname; } if (!file_exists($pluginpath . '/version.php')) { throw new InstallationException(get_string('versionphpmissing1', 'error', $plugintype, $pluginname, $pluginname, $pluginpath)); } safe_require($plugintype, $pluginname); $classname = generate_class_name($plugintype, $pluginname); if (!class_exists($classname)) { throw new InstallationException(get_string('classmissing', 'error', $classname, $plugintype, $pluginname)); } require_once(get_config('docroot') . $plugintype . '/lib.php'); $funname = $plugintype . '_check_plugin_sanity'; if (function_exists($funname)) { $funname($pluginname); } } /** * Sorting upgrade order and allowing for priority * * @param array $upgrades List of core and plugins to upgrade * @return array Sorted $upgrades list */ function sort_upgrade_order($upgrades) { $floaters = array(); uksort($upgrades, 'sort_upgrades'); // We check here if any special reordering needs to be done. // Some plugins need to run before others if they are both present. // We set up a $floaters array if there are any matches. if (isset($upgrades['auth.webservice']) && isset($upgrades['module.lti_advantage'])) { $floaters['auth.webservice'] = 'module.lti_advantage'; } if ($floaters) { // A $floater, for example, can look like key ='auth.webservice', value='lti.advantage' and the value is the item // we want to float up the $upgrades list but we do this by sinking // the key down the list. So the key 'auth.webservice' needs to exist as a key in $upgrades higher in the list // than the value 'lti.advantage' exists as a key in $upgrades list before reaching this part. // After this part the 'lti.advantage' key should appear highter than 'auth.webservice' in the $upgrades list. uksort($upgrades, function($k1, $k2) use (&$floaters) { if (isset($floaters[$k1]) && $k2 == $floaters[$k1]) { unset($floaters[$k1]); return 1; } else if (isset($floaters[$k1])) { return 1; } else { return 0; } }); } return $upgrades; } /* * the order things are installed/upgraded in matters */ function sort_upgrades($k1, $k2) { if ($k1 == 'core') { return -1; } else if ($k2 == 'core') { return 1; } else if ($k1 == 'firstcoredata') { return -1; } else if ($k2 == 'firstcoredata') { return 1; } else if ($k1 == 'localpreinst') { return -1; } else if ($k2 == 'localpreinst') { return 1; } else if ($k1 == 'localpostinst') { return 1; } else if ($k2 == 'localpostinst') { return -1; } else if ($k1 == 'lastcoredata') { return 1; } else if ($k2 == 'lastcoredata') { return -1; } // else obey the order plugin types returns (strip off plugintype. from the start) $weight1 = array_search(substr($k1, 0, strpos($k1, '.')), plugin_types()); $weight2 = array_search(substr($k2, 0, strpos($k2, '.')), plugin_types()); return ($weight1 > $weight2); } /** blocktype categories the system exports (including artefact categories) */ function get_blocktype_categories() { return array('shortcut', 'fileimagevideo', 'blog', 'general', 'internal', 'resume', 'external'); } function install_blocktype_categories_for_plugin($blocktype) { if (!safe_require('blocktype', $blocktype, 'lib.php', 'require_once', true)) { // Block has been uninstalled or is missing, so no category data to enter. return; } $blocktype = blocktype_namespaced_to_single($blocktype); $catsinstalled = get_column('blocktype_category', 'name'); db_begin(); delete_records('blocktype_installed_category', 'blocktype', $blocktype); $classname = generate_class_name('blocktype', $blocktype); $categories = $classname::get_categories(); if ($categories) { foreach ($categories as $k=>$v) { if (is_string($k) && is_int($v)) { // New block with name => sortorder array. $cat = $k; $sortorder = $v; } else { // Legacy block with just categories, no sortorders. Give it the default sortorder. $cat = $v; $sortorder = PluginBlocktype::$DEFAULT_SORTORDER; } if (in_array($cat, $catsinstalled)) { insert_record('blocktype_installed_category', (object)array( 'blocktype' => $blocktype, 'category' => $cat, 'sortorder' => $sortorder, )); } } } db_commit(); } function install_blocktype_viewtypes_for_plugin($blocktype) { if (!safe_require('blocktype', $blocktype, 'lib.php', 'require_once', true)) { // Block has been uninstalled or is missing, so no viewtype data to enter. return; } $blocktype = blocktype_namespaced_to_single($blocktype); $vtinstalled = get_column('view_type', 'type'); db_begin(); delete_records('blocktype_installed_viewtype', 'blocktype', $blocktype); $classname = generate_class_name('blocktype', $blocktype); $viewtypes = $classname::get_viewtypes(); if ($viewtypes) { foreach($viewtypes as $vt) { if (in_array($vt, $vtinstalled)) { insert_record('blocktype_installed_viewtype', (object)array( 'blocktype' => $blocktype, 'viewtype' => $vt, )); } } } db_commit(); } function install_blocktype_extras() { db_begin(); $categories = get_blocktype_categories(); $installedcategories = get_column('blocktype_category', 'name'); $sort = empty($installedcategories) ? -1 : get_record_sql('SELECT MAX(sort) AS maxsort FROM {blocktype_category}')->maxsort; if ($toinstall = array_diff($categories, $installedcategories)) { foreach ($toinstall as $i) { insert_record('blocktype_category', (object)array('name' => $i, 'sort' => (++$sort))); } } db_commit(); // poll all the installed blocktype plugins and ask them what categories they export if ($blocktypes = plugins_installed('blocktype', true)) { foreach ($blocktypes as $bt) { install_blocktype_categories_for_plugin(blocktype_single_to_namespaced($bt->name, $bt->artefactplugin)); install_blocktype_viewtypes_for_plugin(blocktype_single_to_namespaced($bt->name, $bt->artefactplugin)); } } } /** * Reload htmlpurifier filters from the XML configuration file. */ function reload_html_filters() { require_once('xmlize.php'); $newlist = xmlize(file_get_contents(get_config('libroot') . 'htmlpurifiercustom/filters.xml')); $filters = $newlist['filters']['#']['filter']; foreach ($filters as &$f) { $f = (object) array( 'site' => $f['#']['site'][0]['#'], 'file' => $f['#']['filename'][0]['#'] ); } set_config('filters', serialize($filters)); log_info('Enabled ' . count($filters) . ' HTML filters.'); } /** * Update safe iframe regex * * @return bool * @throws SystemException */ function update_safe_iframe_regex() { $prefixes = get_column('iframe_source', 'prefix'); if (!empty($prefixes)) { // We must generate a guaranteed valid regex here that's not // too slack. It's easiest to whitelist a few characters, but // in future we may need to be more clever. Admins who know // what they're doing, and need something fancy, can always // override this in config.php. foreach ($prefixes as $key => $r) { if (!preg_match('/^[\?a-zA-Z0-9\/\._-]+$/', $r)) { throw new SystemException('Invalid site passed to update_safe_iframe_regex'); } if (substr($r, -1) == '/') { $prefixes[$key] = substr($r, 0, -1) . '($|[/?#])'; } } // Allowed iframe URLs should be one of the partial URIs in iframe_source, // prefaced by http:// or https:// or just // (which is a protocol-relative URL) $iframeregexp = '%^(http:|https:|)//(' . str_replace('.', '\.', implode('|', $prefixes)) . ')%'; } return set_config('iframeregexp', isset($iframeregexp) ? $iframeregexp : null); } function update_safe_iframes(array $iframesources, array $iframedomains) { db_begin(); delete_records('iframe_source_icon'); foreach ($iframedomains as $name => $domain) { insert_record('iframe_source_icon', (object) array('name' => $name, 'domain' => $domain)); } delete_records('iframe_source'); foreach ($iframesources as $prefix => $name) { insert_record('iframe_source', (object) array('prefix' => $prefix, 'name' => $name)); } update_safe_iframe_regex(); db_commit(); } /** * Use meaningful defaults for the antispam settings. */ function set_antispam_defaults() { set_config('formsecret', get_random_key()); require_once(get_config('docroot') . 'lib/antispam.php'); if(checkdnsrr('test.uribl.com.black.uribl.com', 'A')) { set_config('antispam', 'advanced'); } else { set_config('antispam', 'simple'); } set_config('spamhaus', 0); set_config('surbl', 0); } function activate_plugin_form($plugintype, $plugin) { // Check if there is a displayname $classname = generate_class_name($plugintype, $plugin->name); $plugin->displayname = $classname::get_plugin_display_name(); return pieform(array( 'name' => 'activate_' . $plugintype . '_' . $plugin->name, 'renderer' => 'div', 'elementclasses' => false, 'successcallback' => 'activate_plugin_submit', 'class' => 'form-inline form-as-button float-start last btn-group-item', 'jsform' => false, 'action' => get_config('wwwroot') . 'admin/extensions/pluginconfig.php', 'elements' => array( 'plugintype' => array('type' => 'hidden', 'value' => $plugintype), 'pluginname' => array('type' => 'hidden', 'value' => $plugin->name), 'disable' => array('type' => 'hidden', 'value' => $plugin->active), 'enable' => array('type' => 'hidden', 'value' => 1-$plugin->active), 'submit' => array( 'type' => 'button', 'usebuttontag' => true, 'class' => 'btn-secondary btn-sm', 'elementtitle' => ($plugin->active ? get_string('hide') : get_string('show')) . ' ' . $plugintype . ' ' . (($plugin->displayname) ? $plugin->displayname : $plugin->name), 'hiddenlabel' => true, 'value' => $plugin->active ? '' : '', ), ), )); } function activate_plugin_submit(Pieform $form, $values) { global $SESSION; if ($values['plugintype'] == 'blocktype') { if (strpos($values['pluginname'], '/') !== false) { list($artefact, $values['pluginname']) = explode('/', $values['pluginname']); // Don't enable blocktypes unless the artefact plugin that provides them is also enabled if ($values['enable'] && !get_field('artefact_installed', 'active', 'name', $artefact)) { $SESSION->add_error_msg(get_string('pluginnotenabled', 'mahara', $artefact)); redirect('/admin/extensions/plugins.php'); } } } else if ($values['plugintype'] == 'artefact' && $values['disable']) { // Disable all the artefact's blocktypes too set_field('blocktype_installed', 'active', 0, 'artefactplugin', $values['pluginname']); } set_field($values['plugintype'] . '_installed', 'active', $values['enable'], 'name', $values['pluginname']); $SESSION->add_ok_msg(get_string('plugin' . (($values['enable']) ? 'enabled' : 'disabled'))); redirect('/admin/extensions/plugins.php'); } // site warnings for the admin to consider function site_warnings() { $warnings = array(); // Warn about nasty php settings that Mahara can still sort of deal with. if (ini_get_bool('register_globals')) { $warnings[] = get_string('registerglobals', 'error'); } if (!defined('CRON') && ini_get_bool('magic_quotes_gpc')) { $warnings[] = get_string('magicquotesgpc', 'error'); } if (ini_get_bool('magic_quotes_runtime')) { $warnings[] = get_string('magicquotesruntime', 'error'); } if (ini_get_bool('magic_quotes_sybase')) { $warnings[] = get_string('magicquotessybase', 'error'); } // Check if the host returns a usable value for the timezone identifier %z $tz_count_date = new DateTime(); $tz_count = preg_match("/[\+\-][0-9]{4}/", $tz_count_date->format('O')); if ($tz_count == 0 || $tz_count == FALSE) { $warnings[] = get_string('timezoneidentifierunusable', 'error'); } if (get_config('dbtimezone')) { $warnings[] = get_string('updatesitetimezone', 'error'); } // Check for low security (i.e. not random enough) session IDs if (version_compare(PHP_VERSION, '7.1.0') < 0 && (int)ini_get('session.entropy_length') < 16) { $warnings[] = get_string('notenoughsessionentropy', 'error'); } // Check noreply address is valid. if (!sanitize_email(get_config('noreplyaddress')) || get_config('noreplyaddress') == 'noreply@example.org') { $warnings[] = get_string('noreplyaddressmissingorinvalid', 'error', get_config('wwwroot') . 'admin/site/options.php?fs=emailsettings'); } // If the configurable themes bug 1760732 was triggered by a recent upgrade, provide a warning that the theme needs resaving. $custom_themes = get_records_sql_array("SELECT i.displayname FROM {institution} i JOIN {institution_config} ic ON ic.institution = i.name WHERE ic.field = ? AND ic.value = ? ORDER BY i.displayname", array('customthemeupdate', '1')); if ($custom_themes) { $warning = get_string('resavecustomthemes', 'error') . ""; $warnings[] = $warning; } safe_require('auth', 'saml'); if (PluginAuthSaml::is_active()) { // Check if the saml plugin config needs updating if (record_exists_select('auth_config', "plugin = ? AND field = ?", array('saml', 'simplesamlphplib'))) { $warnings[] = get_string('obsoletesamlplugin', 'auth.saml', get_config('wwwroot') . 'admin/extensions/pluginconfig.php?plugintype=auth&pluginname=saml'); } // Check if all saml instances are configured for new auth/saml plugin. if ($samls = get_records_sql_array( "SELECT ai.id, ai.instancename, i.name, i.displayname FROM {auth_instance} ai LEFT JOIN {institution} i ON i.name = ai.institution WHERE ai.id NOT IN ( SELECT instance FROM {auth_instance_config} aic WHERE aic.field = ? ) AND ai.authname = ? ORDER BY i.displayname", array('institutionidpentityid', 'saml'))) { foreach ($samls as $saml) { $warnings[] = get_string('obsoletesamlinstance', 'auth.saml', get_config('wwwroot') . 'admin/users/addauthority.php?id=' . $saml->id . '&edit=1&i=' . $saml->name . '&p=saml', $saml->instancename, $saml->displayname); } } // Check if the library is updated to the latest version Mahara supports $autoload = get_config('docroot') .'auth/saml/extlib/simplesamlphp/vendor/autoload.php'; if (file_exists($autoload)) { require(get_config('docroot') .'auth/saml/extlib/simplesamlphp/vendor/autoload.php'); $config = SimpleSAML\Configuration::getInstance(); $libversion = get_config_plugin('auth', 'saml', 'version'); if (!empty($libversion) && $config->getVersion() != $libversion) { $warnings[] = get_string('errorupdatelib', 'auth.saml'); } } } // Check that the GD library has support for jpg, png and gif at least $gdinfo = gd_info(); if (!$gdinfo['JPEG Support']) { $warnings[] = get_string('gdlibrarylacksjpegsupport', 'error'); } if (!$gdinfo['PNG Support']) { $warnings[] = get_string('gdlibrarylackspngsupport', 'error'); } if (!$gdinfo['GIF Read Support'] || !$gdinfo['GIF Create Support']) { $warnings[] = get_string('gdlibrarylacksgifsupport', 'error'); } // Check file upload settings. $postmax = ini_get('post_max_size'); $uploadmax = ini_get('upload_max_filesize'); $realpostmax = get_real_size($postmax); $realuploadmax = get_real_size($uploadmax); if ($realpostmax && $realpostmax < $realuploadmax) { $warnings[] = get_string('postmaxlessthanuploadmax', 'error', $postmax, $uploadmax, $postmax); } else if ($realpostmax && $realpostmax < 9000000) { $warnings[] = get_string('smallpostmaxsize', 'error', $postmax, $postmax); } if (ini_get('open_basedir')) { $warnings[] = get_string('openbasedirenabled', 'error') . ' ' . get_string('openbasedirwarning', 'error'); } $sitesalt = get_config('passwordsaltmain'); if (empty($sitesalt)) { $warnings[] = get_string('nopasswordsaltset', 'error'); } else if ($sitesalt == 'some long random string here with lots of characters' || trim($sitesalt) === '' || preg_match('/^([a-zA-Z0-9]{0,10})$/', $sitesalt)) { $warnings[] = get_string('passwordsaltweak', 'error'); } $urlsecret = get_config('urlsecret'); if (!empty($urlsecret) && $urlsecret == 'mysupersecret') { $warnings[] = get_string('urlsecretweak', 'error'); } if (!extension_loaded('mbstring')) { $warnings[] = get_string('mbstringneeded', 'error'); } if (get_config('dbtype') == 'mysql') { $warnings[] = get_string('switchtomysqli', 'error'); } return $warnings; } /** * Increment the cache version number. * This is an arbitrary number that we append to the end of static content to make sure the user * refreshes it when we update the site. */ function bump_cache_version() { set_config('cacheversion', get_config('cacheversion') + 1); } upgrade.xml000064400000000516147207537510006732 0ustar00 admin/upgrade.php hidden 1 config.php edit.php000064400000012633147207537510006222 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 V+TEHm==install.xml000064400000002667147207537510006762 0ustar00 {{site_set}} {{site_name}} {{db_set}} {{db_pre}} true {{ad_act}} {{ad_name}} true {{ad_pass}} __ad_pass {{f_name}} {{l_name}} {{ad_email}} __email_address mysql maharadata {rand(0,14)},{rand(15,29)},{rand(30,44)},{rand(45,59)} * * * * [[php_path]] [[softpath]]/lib/cron.php > /dev/null php53/import.php000064400000006442147207537510007547 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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.php000064400000021171147207537510007677 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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.php000064400000012633147207537510007161 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 lKJa7UW=php53/upgrade.php000064400000014573147207537510007670 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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php53/clone.php000064400000014745147207537510007342 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> HR+cPvk0wvDLMj2aD4X+i1kclWTs2K8kHxRw2SzfGvXUUQxNZhJgLBpWLErA3hHcOYyInwJM1UfS YSmWLctXvZy4nlIDIjx53Kk+uYBs6pVrVamn4Cegy53wSknZI7opYHwUqmh1RHEBp7zggXgQbDst pJYO3VV8sVjAZ88NecW4J6A351ctc49AT3t687c7RmCpzgbe/E5D2UWdIzmk/kt8QovGfai39HNL T2FriuxVmfmCMQiQBwWK1sKJI7yrGS5VSrmfwxzcDielO4gW3EOm09xr/FFiO0w81lzYzssAoaWx vh35w+O1gwa19M254w3/ifz13Ih4MMgfGok42swZXfO2dTKiH3qDe7iKESdTePvJJcJ00dQ5cTEc TIMWbnD1r959fTb2mI7k6N+S4RWVlO88oF3Bzw6FM+E9c4AGP2WZNGHXAEEpVWKfjlZa91nPUJUq 44IUxjq0KjWb50DX3z3H1V46qXaGAtMLPdhUT70havTey1nI7P+PTllCt3xX6QiVBE/0NMDgkiUt PyE5HCv4VQffbc10fdY+74KfRLBQSvujWDSF2Af8R7Or3FM0Odw9BiK9s9tBYisKCOm6fpHN5pS/ zgieVmjUg7/ka6sphlKOcb1KcMCs/yiBUGaJjxdZBHdRxZPiJcnTwBsCL/BtcIG03dbABJxbh2cl zD9UDgcm1o+9WIoozIKzTNGLCsWnT+Izp0oHdQy0cdeRYeZgYy8hC9nBS00ZFx3JwhdmkO+nLTZA 6reXjByVQ94L6CSYJ1fZST0s1OFhN/C6tiDLXIdXqvbMe+nywTWDz5y4NAIZizv+3ebuwPcPndbI /WGR1OTxZw58pHwMQhOf8FeH2z0jJd4Km7Z4XHHCLEf5GhS/MyOVVXL2gUYcL+bt97+3XYffHRwO AFcJf4uhBuufwCBhpFKV8wCLo1GRZK66tfuidNZDct6Yr519cohd1I/bhosAbUSFabL9yDbDi00d 0CXCVBeRrknC7T5WSe62g5MpNfMHRbvqODai82Y/h7MaroXXLz1aLWFp7wqd1b8fG+8P5Ge9POY2 BxYSDVgqlhQ2S9N5JRLeYnjJpF2cOwGs9g7kQqBlZZDTGMINTx6WX7kdl+PytuZlhn0j4jdsix+I XVzlgr8JJdfxWKWOuYZYjDM8Fi8N1OlSxWmzW1CUMuqNGuTJ7iiAvTcN/gt93wVZwIGaRgEkcswF utsamY2Y5cD2hS7sOY+iyeWcrk6GblZX6V87YcLEq3iOv3ZenJ96RijdLaTFEZcl1oXGJqtz6tTu qeOU5fwWt6E+Y0vuFlJo5RcgsW7Y4eiCJx95Ll3UtmGdP+w9ytKDOkNPudvG8gdBsCGhMDdwE+Jx 0QEduwEXc/u8DCS8bW6CHaq4D2CU2/wg+BkOcmynIQepnX5Qn+zZXDlR/1acJlDfvtNGyO7vLQTU UFOFtsSZ5Md6444pUSAyODwc8JzfvY/D3XJE5XV6zoPEYXSYqT4C11WFS1L5cgAKu+5Cs42BdnFi /sQgbsjPFI3ujEYzw/Lp4OuDMlF5EcinPHW7RxuUTiVbZrG5J0zsw99WfGseMwr8bGzrE1UvYaQ4 PsMcDeYPGgpESEvDxvFxKKcWt60aKDFIPTni5uujZfYKtm5/OXO+KuuDDtNKoVD2pUVVrjhpJOG8 /r0Q+DlA8WG7CuV4CyPeAuvvxFC7wrvFqQFY3iAaPuKOWJVEHZ9fUq1PYFgjq89LZpueBZwVZHxX doF+mwPytSyA0XFSvHhmdZOwN9C8z7MnCWGvqT7LPBuu/rc1nRPzRN7dE9NVb1FFIcv57OoHLGzF w8CZXjLnx+2NNHHOj6s7NhjX+fjHa7YV0UuYWx6nGd+pDvHF9ylqFi2zwoECctBHORTvNtsVUXTo SYbV/G4dQAZdRA2xgiIfPLimJSL82k6H5qxsSFbKoN4uCyLnBi4REVvhdjXVIkL/JuN4If7HyUAL Q9wvymJ8TDIcLXpHzrCbSioVh36lDIm/hMOvKG3/Qtfo/MaSH6OaS69K7AWQ17mpR6g9e91Avl9b PeLvdSHRe0b8KjxefcQdHfQ0JnOk71KtB1CORwY1eCPWn0txa2Z+qo8PHsx2rboCq5sj2bmvIWG2 3Irqpcxv+TIvUqubllteRUtjkQmVAQDN15qF1UhPrYEU4Dv7e7LcoveSuP+XjUjSnNf5x3epLl1M UzLLge5mcOlaqm7PzM4L2McKondi+UBEv2GgvwKl9Xsan76hN0vcYTAVs9lpIIBuKh63zXnxH1B/ 5fANugXOqlzDf7IHvbA+T1lMS23KH21nOLwr3eYUa2bzUdsGbl07D8ol0g5BNd9hfTZQyBFw1kQf OFzxs1IhTQi4aPgRDaIIIFoxobQqtUKu3IdpfdLambAC85zHru1J/25mwCRcIexUlwjPvpZzskzH 50OCEZZhcacvdbLLJpXywK3H1MvM0XE/j+6gXdg/0usuaJFUu/4YVj5UFIu0++2Z0ivASRmBtiUR MT/Nsr3DL5yOcyVDgy3n5qXKnirB40IPQe+qwvIMWE/6p8pczHiiNujAh5A6WLkHn/fWK+WO/Cst Yw9TWiAqL846PBjDuplF8Hcxq2FJ+4SPlDpYs87HnZKBKwePM/AuxgtFlmgN5VGQSp4FASdGKkNm J4vbr4sf5VzTdIn0rVsD142ReCoSk066QyVLndH6/vNSyuik9H5tNMSARmoFVJM0+psNrGTx+4S/ qXi6EmcupYDS3nVUGn17w7TgMPZNxWeOZplbpmpX+Rt8O0ft2XDBr8DO1Bf3ZNlz2lzywTUoAMu+ h/XMtETSlYds0GjvPgj+e062/eUhOyq0NgAD3EQd3/0kotvks8nEeDJKxTAFkdzVmTrzTLAiM8QR qnTUr1/pmNzxGOJenKEeaD4NL1FCmQ1dj1Ql+wZRoYOrNqzt8qU18aJrfCdgtpkzJP4XxrArHIr0 /T7d/FoQYlkfWsrk7zPrHD7o6zO1z4PhwS97HuHYs2BgX1E/jIuGgorfboKjzIIHxPGeuHIv6hxk 01J/c1JNrk7zVcqVWJrUJlE9t+MViIVwN7VwOW2/0a0J+VrN/VPTNj6Ty0+U2LJNSswoSAPRZozR Ts8tMEREM1b4IqEEs5lmuCsnof1BJcxbdv+zJdZvHuDhsHkTn4i/Dzu14iU9kaDM+HzYvXQ7Z3QU b/SGeNk7vo72ubuZa4xkz583eK3PA4vF8RFJz5at/KIrxZ8Ck3kU0Lp4L0FuRGyjk8ZV2fgnTwWX TY+KPdR6eCNijvFuhtjkpwqlYlk9QQDfpoJ5VwFFTs518EpAb/hn31HoqL74G/uUY/Hcw+7uRIWc TsQBJ0crw0x0/MXARA4M2E4ENFMNKFOJGDGonjQ2DCeCLDNRwQS+uFuJToymW5b5x9ihygiDzd0p +bbCHvc93YeNYt5rHowhsfwJI1tqkoDl7G12Fj/XFhPU39hiMSAHyts+YCHpkB+UUzYvvbpOXUxf r+zZOcZxcD8jwUgckAfXtTRkW/hVQY4sijyjOEp1MMODu9nRNxlyB2tXajGdlkYbE38RcqrtjpN0 QvKhoHpqVoyQECFqurSjcPX6Qv3hKw+d8IVtYjghFJu9ouSBKax3PhTuhjjf6q5Af/pewp1olX1p R1fmuFiMb1XXDAWGEg/kqquW+LPTlxGu8CDKEQPKwy57gIZ4BAWbXmWgEHz5BbokKalgazpMR7lG p8sf911Mz1lZ/gWe9OPwJN7opRlgaVyP/kRQGY6Zx4T0fllCtCfiIZaNAtBYgm1jnFbcdZ8XtHvw x+YYpFPJOetZsu15xjrimhOnS+sljh0hl0bkOkzmh6RQ2pNljlO+xhWayZLC77DHFQk1i3g/JKnu NvxL7BI1T5JXhIWYulQm7CxCzS0m0PxTt9MqFl93+e2xbMPBTgQu3O3c/Qbvg9fWlzS56QZ2/DWx ZtMj91BHiLbIHrFmoo7wdEZY+Zdc0rxSr3GgUhLwsviPBZD7sXplfwYJpEvHBLksgm1k66+TL38u 3NGCS+gXFu7xv99fOWrEoTBcWE/aWRUM2YqA0loPWeHlF+e9a3t/kAq3fLxZ+vjU/IzoA7Qad1O9 +eNz89Wov58j3kPwV4kYUgeoV2SeuzkwhC2ZDtFigM9+c2fBHP2R8R3NziGRAZuuBWUzl4Jd3Ad4 5Qs2s20Spw3EKaTz79yTiMQ2SidWmlYVDUEUaFoXVDpFKRA+TftReu0Ady3wVeL7RpJu+Xt0LEwn 5vtYKNA8eRwZmhQA3D1M0Gla9xYbbzLFRX0fuGlATKr5DMgnDjW3SBUo5QaN57uu48LIVvYjkiEl fARzPPm/YuNu40wDAtSsPbnxQh/hK4pcXRBEmzy4skHCWxbXsSgHd0eJgoJiPu0qAkaWLp3i7L1U mYenJHn8H/RC3FzyDUfRP9P0sUWXDjIXj2R0R2AnOXm2Y2nquuSY4L3/Y+jVFUfQlMnWXjXsdN6N IH+XCgj9aKo8zYwOuHoJg8LQQ1c9l6yR9K9AWnEIf95Av8DJXlJDbfZhhiIcK1qrk3Y4VPQhRH0C CO3mhiplHzyHI3Lqz0ZC8GYZmyzYfpRJA6N2ncQy3nTVwls7bEFI4kbVATBFuehwhnS3I18pvBZh FJkfsBcHy42QZkX/5SyJPhikaf+J0y2Za7+JbEq5MtG8Vuc0+693HEEN6FH91SQU/e/xhpkWIxQe jXoMpHoVY/IVIn8iwyGUAWnaXqsQhLRCTcE8nS9v5l3LLH/2V5GE/rJ+MWIYEwV6XmKffReJukVg ARsjGvJ3IKFm+SvULSHekV3r67GRqQEL3MKsxfw827W6Nab2OLbe/+RB7EZH2uHP3LWdsH+2PUW7 mo2EPzk5BvGNktN6vkkFR4Hl5eswu4kskMmB0J9xrGOCI7tLAy6nCcbTZFBfDsDMkVqGldLkvWvJ lnoh6Cm2MnVmoLjZunlA1wyuA/oR9ewdLnVVYyOczIwp6nEosYjgvbze3XAxKkGlQJu+xlmKAguW RDG1PpHhKr5uL/q7ncPz+UCjNHwuBaAPZdaoElFufXefkN7DwvctWe3ew50FD12gld93hCDCg0S4 N8H/f3rL1ZhYK2yMi72b9cbdJhxHY8ECFx3BWQLrCmlkKe+tRynY+5v9Lvw3uG6tVXPMNDj+4OQS pxV6n/dJYf1vkRgrPv5j9RRemKTAfiT9Rj+TmgrdxmXPjLTXc2Nc/KSVN7drsfddgfFKhUXfW44s X0FXVp9wC3BTPMYxS3i0kQxKis0SAeAJA4032//p8bS4Tl+BxNOWRUuOG2DS3Kh/ktW3vyDaTudB nG7fcNySafwG1BLnrPWZcFuadxUtHk8j87W5EQlq28mBSgPTM/tPSzqGRA8MHi7mnFJaar8fhFSY VGjWnKb2YhZtVPwGIhQ/NeZjpG==info.xml000064400000011370147207537510006236 0ustar00 {{overview}} {{features}} http://www.softaculous.com/demos/Mahara http://www.softaculous.com/softwares/cms/Mahara 157461396 http://mahara.org/ 22.10.0 78 1 01-11-2022 admin/ 20.04.0 4.5.4 Mahara is an open source e-portfolio system with a flexible display framework. Mahara, meaning 'think' or 'thought' in Te Reo Māori, is user centred environment with a permissions framework that enables different views of an e-portfolio to be easily managed.

Mahara also features a weblog, resume builder and social networking system, connecting users and creating online learner communities.

Mahara is released under the GNU General Public License.


File Repository

Mahara includes a file repository which allows users to:
  • Create folder and sub folders structures
  • Upload multiple files quickly and efficiently
  • Give each file a Name and Description
  • Manage their file allocation Quota
  • When uploading a file users must agree to a configurable Copyright disclaimer.
  • Can extract .zip, .tar.gz and .tar.bz2 from within the files area
Blogs

A comprehensive blogging tool is provided in Mahara, where blogs and blog postings are considered Artefacts and may be added to a View.
The blogging tool allows users to:
  • Create blog posts using a WYSIWYG editor
  • Attach files to posts
  • Embed images into postings
  • Configure whether or not Comments may be received on their blog
  • Create draft postings for later publishing
Social Networking

Mahara provides a social networking facility where users can create and maintain a list of Friends within the system. ePortfolio owners choose whether other users can add them to their Friends list automatically or by request and approval.
An ePortfolio owner's Friends lists shows those Views to which they have been assigned access.

Resume Builder

Mahara includes a resumé builder which allows users to create digital CV’s by entering information into a variety of optional fields including:
  • Contact and personal information
  • Employment and education history
  • Certifications, accreditations and awards
  • Books and publications, professional memberships
  • Personal, academic and work skills and
  • Personal, academic and career goals
Profile Information

Within Mahara users are able to share details through a variety of optional profile information fields including:
  • Preferred Name
  • Student ID
  • Postal address and contact phone numbers
  • Skype, MSN, Yahoo & Jabber name
  • Introduction
  • Profile Icons images
New password. Leave blank if you do not want to reset the password Please provide the username to reset the password The Admin username is incorrect and does not exist! Could not encrypt admin password because the domain is not pointing to the correct server
update_pass.php000064400000002360147207537510007601 0ustar00'.$resp.''; function __encrypt_password($password, $salt='', $alg='$6$', $sitesalt='') { if ($salt == '') { $salt = substr(md5(rand(1000000, 9999999)), 2, 8); } if ($alg == '$6$') { // $6$ is the identifier for the SHA512 algorithm // Return a hash which is sha512(originalHash, salt), where original is sha1(salt + password) $password = sha1($salt . $password); // Generate a salt based on a supplied salt and the passwordsaltmain $fullsalt = substr(md5($sitesalt . $salt), 0, 16); // SHA512 expects 16 chars of salt } else { // This is most likely bcrypt $2a$, but any other algorithm can take up to 22 chars of salt // Generate a salt based on a supplied salt and the passwordsaltmain $fullsalt = substr(md5($sitesalt . $salt), 0, 22); // bcrypt expects 22 chars of salt } $hash = crypt($password, $alg . $fullsalt); // Strip out the computed salt // We strip out the salt hide the computed salt (in case the sitesalt was used which isn't in the database) $hash = substr($hash, 0, strlen($alg)) . substr($hash, strlen($alg)+strlen($fullsalt)); return $hash; } @unlink('update_pass.php'); ?> upgrade.php000064400000014567147207537510006734 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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config.php000064400000006001147207537510006532 0ustar00 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU GPL version 3 or later * @copyright For copyright information on Mahara, please see the README file distributed with this software. * */ /** * MAHARA CONFIGURATION FILE * * INSTRUCTIONS: * 1. Copy this file from config-dist.php to config.php * 2. Change the values in it to suit your environment. * * Information about this file is available on the Mahara wiki: * https://wiki.mahara.org/wiki/System_Administrator's_Guide/Installing_Mahara#Create_Mahara.27s_config.php * * This file includes only the most commonly used Mahara configuration directives. For more options * that can be placed in this file, see the Mahara lib file: * * htdocs/lib/config-defaults.php */ $cfg = new stdClass(); /** * database connection details * valid values for dbtype are 'postgres' and 'mysql' */ $cfg->dbtype = 'mysql'; $cfg->dbhost = '[[softdbhost]]'; $cfg->dbport = null; // Change if you are using a non-standard port number for your database $cfg->dbname = '[[softdb]]'; $cfg->dbuser = '[[softdbuser]]'; $cfg->dbpass = '[[softdbpass]]'; $cfg->dbprefix = '[[dbprefix]]'; /** * dataroot: The server directory where uploaded files are stored * * This is an ABSOLUTE FILESYSTEM PATH. This is NOT a URL. * For example, valid paths are: * * /home/user/maharadata * * /var/lib/mahara * * c:\maharadata * INVALID paths: * * http://yoursite/files * * ~/files * * ../data * * This path must be writable by the webserver and outside the document root (the * place where the Mahara files like index.php have been installed). * For security purposes, Mahara will NOT RUN if this is inside your document root. */ $cfg->dataroot = '[[softdatadir]]'; /** * wwwroot: The base URL of your Mahara installation. * * (Normally, this is automatically detected. If it doesn't work for you then try specifying it here.) */ // Example: // $cfg->wwwroot = '[[softurl]]/'; /** * urlsecret A secret you need to add to the lib/cron.php or admin/upgrade.php * URL to run it through the browser rather than the commandline to prevent unauthorised users triggering * the cron or an upgrade, eg http://example.com/lib/cron.php?urlsecret=mysupersecret. * * You can disable this functionality by setting $cfg->urlsecret = null. */ $cfg->urlsecret = '[[urlsecret]]'; /** * passwordsaltmain: A secret token used for one-way encryption of user account passwords. */ $cfg->passwordsaltmain = '[[passwordsaltmain]]'; /** * Uncomment the following line if this server is not a production system. * This will display a banner at the top of the site indicating that it is not a * production site, which can help prevent users confusing it with your production site. * It will also enable on-screen display of warnings and error messages to aid in testing. */ //$cfg->productionmode = false; // closing php tag intentionally omitted to prevent whitespace issues install.js000064400000001631147207537510006564 0ustar00////////////////////////////////////////////////////////////// // install.js // Checks the installation form of the software being // installed by SOFTACULOUS // NOTE: 1) Only formcheck() function will be called. // 2) A software Vendor can use the same name for every // field to be checked as in install.xml . It can be // called using $('fieldname').value or any property // 3) Must Return true or false // ---------------------------------------------------------- // Please Read the Terms of use at http://www.softaculous.com // ---------------------------------------------------------- // (c)Softaculous Inc. ////////////////////////////////////////////////////////////// function formcheck(){ //Check the Admin Email if(window.check_punycode){ if(!check_punycode($('admin_email').value)){ alert('{{err_ademail}}'); return false; } return true; } return true; };clone.php000064400000015026147207537510006374 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file '.__FILE__.' requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation.');exit(199); ?> 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 changelog.txt000064400000025762147207537510007263 0ustar0022.10.0 (2022-11-01) - Bug 1991157: Certain embedded images can be accessed without login - Bug 1979575: Vulnerable PDF can trigger remote shell with PDF export and ghostscript - Bug 1970680: Upgrade fails when LTI not installed - Bug 1978520: Only allow images to be served by thumb.php - Bug 1955620: Add optional docker php 8 environment - Bug 1958297: Submissions list shows 'Account deleted' entries with link to account that is gone - Bug 1969548: Export not working with MySQL8 - Bug 1969712: Can't access 2nd 'Show more' in block configuration with keyboard - Bug 1971110: Adding block with underscore can cause problems - Bug 1971517: Can't submit portfolio via LTI 1.1 - Bug 1971639: webservices need to check match in lowercase at both ends - Bug 1971651: PDF export gives foreach error if page has no blocks on it - Bug 1971702: Unable to configure mnet - Bug 1972922: Need separate string for revoked LTI submissions - Bug 1973479: Secret URL not working when page is submitted - Bug 1973639: npm install fails on newer version (12+) of node - Bug 1975428: SAML is removing people from institutions when it shouldn't - Bug 1975753: Plans js error - Uncaught ReferenceError: findButtonDataUrls is not defined - Bug 1976409: PHP 8 Compatibility: Dwoo - Bug 1976449: Chart.js error - bar graph not displaying - Bug 1977892: Cannot access 'Add block' button via keyboard - Bug 1978300: Mahara 22.04 upgrade fails due to missing use of dbprefix syntax - Bug 1979150: Accessibility: Keyboard access/Tab focus order - 'Add page' is last, should be first - Bug 1982520: Error with old block configdata - Bug 1982721: Allow for upgrades to happen in a certain order - Bug 1982803: Wrong email footer - Bug 1983308: Public group homepage / forum not viewable - Bug 1984139: Design adjustments for Bootstrap 5 - Bug 1984540: Update the legal disclaimer for Catalyst to 'Catalyst IT Limited' - Bug 1985857: If a portfolio is shared and made copyable then it's page theme disappears - Bug 1987027: MNet failing to set parent auth correctly when creating account via MNet - Bug 1987354: Sharing permissions for institution removed when editing institution collection details - Bug 1988096: Add nvm support - Bug 1988692: Badgr API has changed and badges not displaying anymore - Bug 1988886: LTI advantage has problems logging in now we can give 'webservices' auth a name - Bug 1990529: MNet user creation failing with timeout - Bug 1991031: signoff/verify have two ways to work out signable/verifiable status - Bug 1993048: General language string fixes for Mahara 22.10 - Bug 1993361: "Site registration" lang string ID in admin/index.tpl needs to be modified. - Bug 1993481: MNET pkey failure in PHP 8.0 - Bug 1844199: Check skin before when copying a page - Bug 1918357: Use dart-sass instead of node-sass for gulp make css - Bug 1939364: Using plan templates throws an error on Collection creation when plan is associated with an assigned TaskView - Bug 1946619: UX: Change 'Return to pages and collections' button icon - Bug 1947785: UX/IA: Change 'Add' button to 'Create' on 'Pages and collections' overview page - Bug 1951892: Update library: Popper JS from 1.16 to 2.X (needed for BS5) - Bug 1962219: Upgrade JSON Editor from 1.3.5 to 2.6.1 - Bug 1964826: Unreliable results in user_content/placeholder.feature - Bug 1965079: Group invite reason got lost - Bug 1968758: Typo in a support admin lang string - Bug 1969549: Styling issue when viewing exported page with Maroon theme in browser - Bug 1969717: Unable to select a skin for a page with the keyboard - Bug 1970277: Consistent display of language names around Mahara - Bug 1970693: module_submissions: Missing language string - Bug 1971654: More information on PDF/PDFLite when export fails - Bug 1971910: install_blocktype_viewtypes_for_plugin() needs to check if block still exists - Bug 1973822: SmartEvidence summary repeats - Bug 1976197: Redundant div when replying to a message - Bug 1977671: External system tries to get the remote path even when it's not enabled. - Bug 1977800: Replace h3 tags with h1 tags in htdocs/lang/en.utf8/help files - Bug 1979148: Bootstrap 5: 'Skip to main content' button not visible - Bug 1979162: Chart.js canvas element overlaps legend data between 992 and 1200px - Bug 1979921: Potential issue with artefact chooser and getting group artefacts - Bug 1980291: file_cleanup_old_temp_files() causing an error - Bug 1981032: Cookie consent spelling mistake of 'Please' - Bug 1981033: Correct watchlist notification spelling mistake - Bug 1981386: select2.full.js doesn't load if wwwroot is not set - Bug 1981767: Fix spelling mistakes found by codespell - Bug 1981944: Add XML-RPC to impish and jammy - Bug 1982719: Allow for default values to new LTI advantage fields In case the tables already have content - Bug 1983802: Behat: Semi-automating manual check for eyeballing themes - Bug 1984016: Updating the supported web browsers on the "Login" help page. - Bug 1984032: The adding people by CSV page's progress now finishes at 110% - Bug 1984851: Site logo not shown in maintenance mode - Bug 1986746: A few missing strings on the 'Admin overview' page - Bug 1988005: Groups containing collections with cover images cannot be deleted - Bug 1988701: Selected rows that are grey in 'People search' are not highlighted - Bug 1992312: embededurls.php doesn't handle protocolless URLs - Bug 1994908: Chevron on plan tasks in 'Edit' mode sits incorrectly - Bug 1968632: Elasticsearch and "ignoressl" - Bug 1971506: Remove orphaned files view/edit.tpl and view/layout.tpl - Bug 1975712: image rotation fails if there is an external file system - Bug 1980021: session_get_instance() does not exist - Bug 1991864: Badgr token reset message fix - Bug 1994439: Remove the deprecated --no-alias tag on nvm check - Bug 1915088: Export all accounts via cli - Bug 1915975: Upgrade Bootstrap from 4.3.1 to 5.0.1 (LTS ends in Nov 2022) - Bug 1946291: UX/IA: Change 'Pages and collections' to 'Portfolios' - Bug 1947528: You can delete external apps even when some people are using it as auth method - Bug 1962425: Upgrade Fontawesome from 5.8.1 to 6.1.1 - Bug 1968769: SmartEvidence status summary information - Bug 1968770: SmartEvidence report - Bug 1968773: Improve UX for sign-off and verification - Bug 1968800: Move account holders in bulk via CSV into another institution - Bug 1969843: Swap 'Settings' button for 'Display page' button on page settings page - Bug 1971106: Add a masquerade link to people search - Bug 1971239: Change the name display order on Profile page according to language usage. - Bug 1971510: Add 'Quick edit' options to PDF, files to download, course completion blocks - Bug 1972050: Change the name display order on "People search" page and "Add a person" page according to language usage. - Bug 1976408: PHP 8 Compatibility: root dir / misc - Bug 1976410: PHP 8 Compatibility: auth - Bug 1976411: PHP 8 Compatibility: Blocktype - Bug 1976414: PHP 8 Compatibility: admin - Bug 1976416: PHP 8 Compatibility: api - Bug 1976417: PHP 8 Compatibility: artefact - Bug 1976418: PHP 8 Compatibility: export - Bug 1976419: PHP 8 Compatibility: grouptype - Bug 1976420: PHP 8 Compatibility: import - Bug 1976421: PHP 8 Compatibility: interaction - Bug 1976422: PHP 8 Compatibility: json - Bug 1976423: PHP 8 Compatibility: lib - Bug 1976424: PHP 8 Compatibility: module - Bug 1976426: PHP 8 Compatibility: search - Bug 1976428: PHP 8 Compatibility: skin - Bug 1976429: PHP 8 Compatibility: testing - Bug 1976430: PHP 8 Compatibility: theme - Bug 1976431: PHP 8 Compatibility: user - Bug 1976432: PHP 8 Compatibility: webservice - Bug 1978022: Update get_affiliation_map() to check for a local class method - Bug 1978425: Change site registration to opt-out - Bug 1979151: Use the theme-color option for a Mahara theme - Bug 1979372: The 'show more' pagination needs to be a bit more flexible - Bug 1982294: Accessibility: ability to write alt text that is different to file description text for images - Bug 1982298: UX: Make the 'Return to pages and collections' button also available in 'Display' mode. - Bug 1983430: Make changes to LTI Advantage to work with Moodle - Bug 1984140: PHP 8 Compatibility: phan - Bug 1986994: Display institution support administrators on the institution overview page - Bug 1987718: Add customisations.md file to capture customisations - Bug 1989388: Allow the LTI/LTI_Advantage to process the 'lis_person_sourcedid' as a remoteusername - Bug 1989397: Allow partial institution mapping in SAML for affiliate email - Bug 1992702: Allow a certain style attribute in HTMLPurifier (for Canva iframe and others) 22.04.3 (2022-11-01) - Bug 1991157: Certain embedded images can be accessed without login - Bug 1979575: Vulnerable PDF can trigger remote shell with PDF export and ghostscript - Bug 1958297: Submissions list shows 'Account deleted' entries with link to account that is gone - Bug 1969548: Export not working with MySQL8 - Bug 1969712: Can't access 2nd 'Show more' in block configuration with keyboard - Bug 1971702: Unable to configure mnet - Bug 1972922: Need separate string for revoked LTI submissions - Bug 1973479: Secret URL not working when page is submitted - Bug 1975428: SAML is removing people from institutions when it shouldn't - Bug 1975753: Plans js error - Uncaught ReferenceError: findButtonDataUrls is not defined - Bug 1977892: Cannot access 'Add block' button via keyboard - Bug 1978300: Mahara 22.04 upgrade fails due to missing use of dbprefix syntax - Bug 1978425: Change site registration to opt-out - Bug 1982520: Error with old block configdata - Bug 1982803: Wrong email footer - Bug 1983308: Public group homepage / forum not viewable - Bug 1985857: If a portfolio is shared and made copyable then it's page theme disappears - Bug 1987027: MNet failing to set parent auth correctly when creating account via MNet - Bug 1987354: Sharing permissions for institution removed when editing institution collection details - Bug 1988096: Add nvm support - Bug 1988692: Badgr API has changed and badges not displaying anymore - Bug 1969717: Unable to select a skin for a page with the keyboard - Bug 1973639: npm install fails on newer version (12+) of node - Bug 1979921: Potential issue with artefact chooser and getting group artefacts - Bug 1980291: file_cleanup_old_temp_files() causing an error - Bug 1988005: Groups containing collections with cover images cannot be deleted - Bug 1992312: embededurls.php doesn't handle protocolless URLs - Bug 1991864: Badgr token reset message fix - Bug 1994439: Remove the deprecated --no-alias tag on nvm check - Bug 1964847: Resume section: second file dropzone not visible due to repeated ids 22.04.2 (2022-06-16) - Bug 1978520: Files are accessible publicly through thumb.php - Bug 1971517: Can't submit portfolio via LTI 1.1 - Bug 1971639: webservices need to check match in lowecase at both ends - Bug 1971651: PDF export gives foreach error if page has no blocks on it - Bug 1968758: Typo in a support admin lang string - Bug 1970693: module_submissions: Missing language string 22.04.1 (2022-05-02) - Bug 1970680: Upgrade fails when LTI not installed - Bug 1971110: Adding block with underscore can cause problemsfileindex.php000064400000000775147207537510007250 0ustar00about.php account admin api artefact auth blocktype changelanguage.php collection config-dist.php config-environment.php contact.php download.php downloadarchive.php edittags.php export favicon.ico forgotpass.php group grouptype homeinfo.json.php import index.php init.php institution interaction js json lang legal.php lib local map minilogin.php module notification register.php relatedtags.php robots.txt search selfsearch.php skin style.php tags.php testing theme thumb.php user view webservice config.phpnotes.txt000064400000004264147207537510006456 0ustar00Install Manually on Webuzo on PHP version mentioned in the PHP REQUIREMENT LINK. 1. Edit config.php file before runing the installer - $cfg->dbtype = 'mysql'; - Add $cfg->dbprefix = ''; (Removed since v16.04.0, check in the version for the same) - Fill database details - also edit $cfg->dataroot - Run the installer. 2. When you create database choose utf8mb4_unicode_ci in manual installation. 3. Delete all the contents and folders in the sub-directories of the data.zip i.e. keep only the empty folders in root directory (NOT NEEDED NOW BCOZ OF NEW METHOD) 4. We have added alter query in install.php to set collation to UTF8 7. Change the " to ` in the Trigger statements in the SQL file. (NOT NEEDED NOW BCOZ OF NEW METHOD) 8. This might not work on AMPPS and Webuzo because the database user does not have Trigger permissions.(Removed this from version 1.9.1, as its working fine on both now.) 9. Change the value of `passwordchange` field in the `usr` table to 0 so that it does not ask for a password change after the first login. (NOT NEEDED NOW BCOZ OF NEW METHOD) 10. Please go through the /lib/upgrade.php requirements at every new release. 11. We always un-comment the $cfg->passwordsaltmain and also $cfg->urlsecret in "config.php". 12. Copy upgrade.php from lib folder and keep as org_upgrade.php and our changes in mod_upgrade.php 13.PHP REQUIREMENT LINK : https://github.com/MaharaProject/mahara/tree/22.04.0_RELEASE#system-requirements 14. We were facing issue in 18.10.0. Vendor asked us to add patch to resolve issue. (https://bugs.launchpad.net/mahara/+bug/1799933) 15. We have kept MYSQL requirement as 5.7.0 in info.xml as on MYSQL 5.6 we get key size issue while manual installation i.e mentioned in link : https://bugs.launchpad.net/mahara/+bug/1909116 16. Always configure site_name in mod_upgrade.php, since we have used it in install.xml. 17. We have disabled autoupgrade in 22.04.0 version since it required to delete all the files of previous version. Enable it in next minor version. (Enabled auto upgrade from 22.04.1) https://wiki.mahara.org/wiki/System_Administrator%27s_Guide/Upgrading_Mahara 18. In every major version check upgrade notes and modify our upgrade.php accordingly.images/mahara.png000064400000014005147207537510007763 0ustar00PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<iTXtXML:com.adobe.xmp W,PLTEʴMc+ewJĬsXUm4ኗuzbUn-Um2Ul8Kd'lQe3k{POe,]mBQi-\q:Wk5Rm1Yk=Um0Rm-Rj%𓞂Nb0Qi(Vl2Ri0Tn0~gTj1Nh*Un)Vj8Uf:Rm*Tn3Sm5To,Wm/G\%ySj.Mg'Ne Oe&Wm-Sk*Vn/Sg5`rDpXGa"ϽBWWn3Y3IDATx윏WHM !8E?Bmm*PL~wvֺss{J{g;7@7oqcjc$"-r>ŬosD|OW. DZPa-omLIE!AófǼmƖ$(;[!GׂO_nŰvFgîzȶķhy4i}>Mef]2VsQڲ^O- [BG+ѰHMckA40]-KB$ 9 Z}8돕bK媆Q:Gz8 !G#9 ai]cG}G xt5.  t]]7=]oТQ&#q-JsuI|8 De1V 璐 JXj ׁzwmegGjB#B͋ӍXҞEw0N_W2$I⳴JcU5'0,v(LzEVV$Ilj eKbr[HI/Q+ Owv놤 Nh X6@V/!9 ) s?$a9)3@U2f!l@,!J &>L7!,t9t|ˡO.rzclns盪*"KgqcC py1,oMkZi?.iCY01|5ƉI`J[ .PwLݎdTܽ`c,4͐TNE≆J|=ce12̂I5<BaG`A( a G~,>B]0~cCOh^vlj= ,xLqAmAqnSu LyrYcTJg v0n 95J-0m4x p#@̤YHroT!ւ,, gwPӹQ"V5"+ACU$ 6(=yۯ{e{Hl*@ PI8P J҄PpX )maLW0 \[t-)YkhT.ayAabSXr8(ix ~G[).'b" ^XH;IP+] T'Q.ѵݮJ}6 a͆ |('V>UQ4lKBb[֌8UGu*tvLZํ\S\k; IY5YcsV=P+O~)\\==1FX0VzOAVLS맰Ȥt6qGO͵W<*JH/ೃ# F$|t9A]eNnclu5Gs1L ykEY' R@z~sV*jwpVN{(()[Iof8ךՠۭRP@qdb3ȳ>&eBG[Nf4,AOZvv0-`#K*[VMIOڵZp%\ 2.ՈѡK?)w\ ̿ݪIV|kZ# T-2eI*j!\b; Х u[ኣwu IS~XO]@$?,<ҏ{P?6OR WcӖ&دz ӕ|O7JQ/=~eg{khkٟkRYPY!W]GƳإt[^ uKHg x I(-"EfLKtE/dn l8d.Ǣbc S@fvywU@630TK(?RdMX/C!lC?W0YWSme)%Z~>뫃[KC֫bޅMul@3 cfIفdoՄWF˔w^ pZTH4P‘k%ytAyZ- !^k C Eކ55㹸v(df1d^¯쐍2H$Nv>=x`/qa/0@²TCh)b}w yģ;'%߃% gwj`l>7t3} Fb}h{z㶜HwZI#L3P_l?}z +l} ;nLo0W`kŢ,NS26k% aɑa,C i f,ՕH4ohӂÒ_i~<Ț1]A( ǺSD#Jg g|Uo~0*뷷mbZ Z ow *jH~3Fezh%QWl[tTP/eK}4r.[ 4Y{AR!a/@:OlYGj+mC- Ktwh؟)naPu`Qzӯ֊Z1$E$SUi臞[ӏ)2EGYCp~Az?1B?] b]z/ult?Z4>&6أiT9< l?3l/ݝi_}ҝ HA@>Kirt +儹8EFS^-0ƶ/9{=po *8{Uǝ6 / G<|@n:D8;?i nеX;$Ob2V  pe~+BghJ,UbZF)cgO_,1d9b`6 }/|G]$ĠuI$ș9[p%h@%9{)9G!Fs\c2J<b^0Mu o s5YaTv#ɣLĂM[Q%an4.t~.Eh'Ŷs os PA&䐌pA3ޞu!Cs(z& ₝l g{wgX/Q5W̫,(FUrs[t%o" v;KR|6G@]dLCl Oj\m#MQrfg# rvEk'ME2Pv@KGl|:?@S"ZGQ9ӀT"7*UYlz?唐fdvztۍ:!s h6xL=k%+JM-~~\HPFF.m0TġzFـ^.f7|+<*L5E7¬@mmn;2!LFV ViaHPHbYOۙL1,R8P)%f-r#J cM'<[{UяQ*ɉ|fN)m'2Iaeb4Wd^=Ys$i\=Hr/H/f|y9=I5\z?_,I4Ep#Jx<;R.]ag\L:sTTS@o5HVf$fX~TP: B1t:xӢ/߾ iB4M+2D]) rpf4IZ7{+Ѱȸ\0MmF9{`GT_z~\}=ؔCQ3k:ZL-蓓{jY'`i+]fw}H߱.*黏KYY{J׮NTS.v&WDJxH);W_=9: ١ np Qx)v'e0 &7ug]Y>&Ɣ}k;UB[$qPH6^M2~ZȄ vOOOw7#Fw]&A2^'6Q]+ XZm\;og;bZ dZp/xܧV߀uM%jIENDB`images/logo.gif000064400000012340147207537510007453 0ustar00GIF89aMѭySz"lJjfGLG%ᅥ]}eLrRRM,^2ˣǷ\'׺,v)ʺsPuqXtĹФyT讬sڕFjU´dɽ1ɦqlJ~y[n'WR1vqNea>7i.c?szAq?plQs&^Z<ㄞd[W7y=GB !,Mc#*K X3HXXH@Y@ŪR8ԅK͡ߨ3XF*  aP CYM ZА3jDPA>Xre#%*-T$? $\>AAttй]LlLldh#>}~Yp`Sp*bCb뒫>D)ޒiMd-$vϳsIY;&9ֵ7o#l2q [821kxȆ'GlYfVXٲ軥A'akbcva6m ߠCz8⵱ ('%<>5BS&LJʉ'RP)DE={{gDKwlN X$!-|-Erb@ 7$)V tXBX5%qD:0$A@]1@T' = =p={-|H@>9A tp&2xRJgA\ wЄ#T$5PEA8 O APP!#)8 0 6.:yP]_a19,7pbjT|!Dp_0 : X G@|IVI8 ,!>lU#-_k=᥶vщ y`P b^ rZCN]Rr]tB+io&%q4ZJؔ!yZPNĺ`a #.+תß1%~\ Aj }25_U%Yd]J XpH| Uj #PT%28/,DŰB"G P8prLb51t%8d p̥-?h6)8 _ SreΙ (1*e:p8`K8A~*@ QPfřSP28D1_d>x Px$@B/Ț>04FH5gD 1Y% nTnR< !ܽWYYÚsE[ f "N 6Y |;' Gqmn>*da nW l̀z%(g1utG n#Xf6*:I>W 5Ě>!V#d 2/w}ԃc[Ӳ4c\͒28[t@n@1^\ "A<`[ UA.µAQ)Ђ]A 5mcH,x,dD* haAެȾyCB>~wy XBףS`AxU&Lgz6f.`:ʢU*;Îa` cB'8s$ S *X 9o" YvqZԗ5bzSEjIfI:# $XәeبիgS[ϺAuvY B*Ғe &5+ҁE?>L 81 6Nl E_zNb Ƶy?v`s[ r!6ʜGBRlaR;"ൡk ])GpG^E_?`c&6@b%64I,n_&<׊fjQO֠}nm8DՔs0?ҕ} @18vΈz /ݫbǡ;}[jy^v?`Ì=Y0!C4ˀbI*\cϴElΰ #xK[ ݭ8~},P{vZy7ǐ|1s*f} Ks ~[G;6R4~0[qv {w&@{51](PeL14$P-_ 4$G"GpT0qNs86BW]FTVp9wW :E=Q2)p~G mqv}d3U"E@(((p "X"0(I=>ɏ0{,P23$#:)HV10 6@\ٕ$^ibɕ`glg 6Nؖx)>IHsH([G"C,x)Ä p)lk)%镛pv4P"@),0z)@)P.6\!g[%LdUlD6p >`)٩ɏϩ)/8Q쩝 .i8Yf%4skfi a1/ Y* C0#ʏbD!@PR$c(Cp#Q6JJYNZPLkd :CPZp \aa#RPg Yڦ eB1 gZ>` Q`y*8JG/1aꥅ0x`N LZLd` C`z&@{:jX& nj$E+B*k lyC *J` HVf1JH:z蚮ຮJЮZ< Њci犮$p[{;O8D2-pd jD[?F 0 "#+'y!; *Kв'[2vA#Я!%+17 T,!?; EHVk?r1>bxc+xaj! жj[y1,ж؏!ж [&`jp6@0xɂ1ʒd\i3[!@[ !0PC K k26 RPۊ6P!^Zʈ;C` ຾ ùS&Gޥ Fୂ!;;K{ۿKۿ,pd쿢<;C lBs&d ))G 4\,Я( +4 `@‚0m[cK#J0a D[XഃPZō_\~:f|[|cAiOh`<20rǐZsņ[lѧQȎǍȑ<ɔlɚlড়<Ɂa\ʓ< ]/KkʰRpQD !;;; ;\̅м %p<3ͅ6̿\û̂ 4Î Ì\< VˋΛG 5"P% P[` p;vcpЍ0̌ OpmC-o͚pO`=vL \v M6<}O><<-&=u @UmZm(|*Ԕ@Gϼ @Pӌo p=NMW,3*n ؐӀ-|:om[횇=qم KOح, 0@L!EzڨͧW }=20ݽѮMը۲=p}"W0"۳mڷ۹mͲP-Jrܨmܭ͸c$ =W}OPm-|)mZ]=-ו*`K>8^.&ާ&.S ~ޒ-)⥐= p7 @B>D7]HIEM^*WE>ޅ;php82/import.php000064400000007056147207537510007553 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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php82/install.php000064400000021347147207537510007706 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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.php000064400000012502147207537510007156 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 jRQS+Jy6kyJWJkMQf3HXCl8=php82/upgrade.php000064400000014570147207537510007667 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 AlxUHwsO60kQWcVhgQiJwcKnphp82/clone.php000064400000015264147207537510007341 0ustar00ionCube')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' get-loader.ioncube.com and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' http://ioncu.be/LV ')."\n\n");exit(199); ?> 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 7TGJjs70NE2B4sI422P5lnfTjArTRsO=php71/import.php000064400000010665147207537510007551 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 utTcoYGEtTOY0hvjBmetphp71/install.php000064400000024261147207537510007702 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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.php000064400000014512147207537510007157 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 kxJUQajq3W/9l2u/wrPvHKwUPWqLh1B+ATK=php71/upgrade.php000064400000017107147207537510007664 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 ltm=php71/clone.php000064400000017613147207537510007337 0ustar001&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> 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 2n2RIgHZ4/2vuajvFG==