Skip to content
Snippets Groups Projects
Commit 3e02c120 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by Jan-Hendrik Willms
Browse files

adjust migration 246 in order to remove the consultation plugin completely, fixes #1731

Closes #1731

Merge request studip/studip!1131
parent 0b2d3353
No related branches found
No related tags found
No related merge requests found
...@@ -134,7 +134,7 @@ class Consultations extends Migration ...@@ -134,7 +134,7 @@ class Consultations extends Migration
if ($statement->rowCount() !== 2) { if ($statement->rowCount() !== 2) {
$this->announce('Unable to migrate SprechstundenPlugin data due to incompatible database format'); $this->announce('Unable to migrate SprechstundenPlugin data due to incompatible database format');
return false; return;
} }
...@@ -280,30 +280,54 @@ class Consultations extends Migration ...@@ -280,30 +280,54 @@ class Consultations extends Migration
FROM `SprechstundenAnmeldung`"; FROM `SprechstundenAnmeldung`";
DBManager::get()->exec($query); DBManager::get()->exec($query);
// Activate consultations if plugin was enabled // Get old plugin info
$query = "SELECT `enabled` = 'yes' $query = "SELECT `pluginid`, `enabled` = 'yes' AS is_active, `pluginpath`
FROM `plugins` FROM `plugins`
WHERE `pluginclassname` = 'SprechstundenPlugin'"; WHERE `pluginclassname` = 'SprechstundenPlugin'";
$enabled = (bool) DBManager::get()->query($query)->fetchColumn(); $info = DBManager::get()->query($query)->fetch(PDO::FETCH_ASSOC);
if (!$enabled) { if (!$info) {
return; return;
} }
$query = "INSERT INTO `config_values` ( // Active consultations if plugin was activated
if ($info['is_active']) {
$query = "INSERT INTO `config_values` (
`field`, `range_id`, `value`, `field`, `range_id`, `value`,
`mkdate`, `chdate`, `comment` `mkdate`, `chdate`, `comment`
) VALUES ( ) VALUES (
'CONSULTATION_ENABLED', 'studip', '1', 'CONSULTATION_ENABLED', 'studip', '1',
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '' UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), ''
)"; )";
DBManager::get()->exec($query); DBManager::get()->exec($query);
}
// Deactivate plugin // Remove plugin from database
$query = "UPDATE `plugins` $query = "DELETE FROM `plugins`
SET `enabled` = 'no'
WHERE `pluginclassname` = 'SprechstundenPlugin'"; WHERE `pluginclassname` = 'SprechstundenPlugin'";
DBManager::get()->exec($query); DBManager::get()->exec($query);
DBManager::get()->execute("DELETE FROM plugins_activated WHERE pluginid = ?", [$info['pluginid']]);
DBManager::get()->execute("DELETE FROM roles_plugins WHERE pluginid = ?", [$info['pluginid']]);
// Delete plugin files
$plugin_path = "{$GLOBALS['PLUGINS_PATH']}/{$info['pluginpath']}";
if (file_exists($plugin_path)) {
@rmdirr($plugin_path);
}
// Delete old plugin tables
$query = "DROP TABLE IF EXISTS `SprechstundenAnmeldung`";
DBManager::get()->exec($query);
$query = "DROP TABLE IF EXISTS `SprechstundenTermin`";
DBManager::get()->exec($query);
$query = "DROP TABLE IF EXISTS `SprechstundenTerminDesc`";
DBManager::get()->exec($query);
$query = "DROP TABLE IF EXISTS `SprechstundenZeitSlot`";
DBManager::get()->exec($query);
} }
private function adjustTimestamp($current, $other) private function adjustTimestamp($current, $other)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment