aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2022-04-05 10:51:49 +0200
committerElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2022-04-05 10:51:49 +0200
commitb18b08a7570f9e3820b86e069917b38a891b579a (patch)
treeeb13a9ef126373e3f28e38416c7e69191e2b796f
parentfa2685abb95b54289d6b243952727f74e9b66b24 (diff)
drop unused plugin default activations, fixes #568
-rw-r--r--app/controllers/admin/plugin.php46
-rw-r--r--app/views/admin/plugin/default_activation.php45
-rw-r--r--app/views/admin/plugin/index.php9
-rw-r--r--db/migrations/5.1.28_drop_default_activations.php29
-rw-r--r--lib/classes/PluginAdministration.php26
-rw-r--r--lib/plugins/engine/PluginManager.class.php38
6 files changed, 29 insertions, 164 deletions
diff --git a/app/controllers/admin/plugin.php b/app/controllers/admin/plugin.php
index 0d17ff4..91f5972 100644
--- a/app/controllers/admin/plugin.php
+++ b/app/controllers/admin/plugin.php
@@ -491,52 +491,6 @@ class Admin_PluginController extends AuthenticatedController
}
/**
- * Display the default activation set for this plugin.
- */
- public function default_activation_action($plugin_id)
- {
- Helpbar::Get()->addPlainText(_('Einrichtungen'), _('Wählen Sie die Einrichtungen, in deren Veranstaltungen das Plugin automatisch aktiviert sein soll.'), Icon::create('info'));
- $actions = new ActionsWidget();
- $actions->addLink(_('Pluginverwaltung'), $this->url_for('admin/plugin'), Icon::create('plugin', 'clickable'));
- Sidebar::Get()->addWidget($actions);
- $plugin_manager = PluginManager::getInstance();
- $plugin = $plugin_manager->getPluginInfoById($plugin_id);
- $selected_inst = $plugin_manager->getDefaultActivations($plugin_id);
-
- $this->plugin_name = $plugin['name'];
- $this->plugin_id = $plugin_id;
- $this->selected_inst = $selected_inst;
- $this->institutes = $this->plugin_admin->getInstitutes();
- }
-
- /**
- * Change the default activation for this plugin.
- */
- public function save_default_activation_action($plugin_id)
- {
- $plugin_manager = PluginManager::getInstance();
- $selected_inst = Request::optionArray('selected_inst');
-
- $this->check_ticket();
-
- // save selected institutes (if any)
- $plugin_manager->setDefaultActivations($plugin_id, $selected_inst);
-
- if (count($selected_inst) === 0) {
- PageLayout::postSuccess(_('Die Default-Aktivierung wurde ausgeschaltet.'));
- } else {
- $message = ngettext(
- 'Für die ausgewählte Einrichtung wurde das Plugin standardmäßig aktiviert.',
- 'Für die ausgewählten Einrichtungen wurde das Plugin standardmäßig aktiviert.',
- count($selected_inst)
- );
- PageLayout::postSuccess($message);
- }
-
- $this->redirect('admin/plugin/default_activation/' . $plugin_id);
- }
-
- /**
* migrate a plugin to top version
*
* @param integer id of plugin to migrate
diff --git a/app/views/admin/plugin/default_activation.php b/app/views/admin/plugin/default_activation.php
deleted file mode 100644
index 5ac8d16..0000000
--- a/app/views/admin/plugin/default_activation.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?
-# Lifter010: TODO
-use Studip\Button, Studip\LinkButton;
-
-?>
-<? if (isset($flash['message'])): ?>
- <?= MessageBox::success($flash['message']) ?>
-<? endif ?>
-
-<form action="<?= $controller->url_for('admin/plugin/save_default_activation', $plugin_id) ?>" method="post" class="default">
- <?= CSRFProtection::tokenTag() ?>
- <input type="hidden" name="studip_ticket" value="<?= get_ticket() ?>">
-
- <fieldset>
- <legend>
- <?= _('Standard-Aktivierung in Veranstaltungen') ?>: <?= htmlReady($plugin_name) ?>
- </legend>
-
-
- <label>
- <?= _('Einrichtung') ?>
- <select name="selected_inst[]" multiple size="20" class="nested-select" style="width: 100%">
- <? foreach ($institutes as $id => $institute): ?>
- <option class="nested-item-header" value="<?= $id ?>" <?= in_array($id, $selected_inst) ? 'selected' : '' ?>>
- <?= htmlReady($institute['name']) ?>
- </option>
-
- <? if (isset($institute['children'])): ?>
- <? foreach ($institute['children'] as $id => $child): ?>
- <option class="nested-item" value="<?= $id ?>" <?= in_array($id, $selected_inst) ? 'selected' : '' ?>>
- <?= htmlReady($child['name']) ?>
- </option>
- <? endforeach ?>
- <? endif ?>
- <? endforeach ?>
- </select>
- </label>
- </fieldset>
-
- <footer>
- <?= Button::create(_('Übernehmen'),'save', ['title' => _('Einstellungen speichern')])?>
- &nbsp;
- <?= LinkButton::create('<< ' . _("Zurück"), $controller->url_for('admin/plugin'), ['title' => _('Zurück zur Plugin-Verwaltung')])?>
- </footer>
-</form>
diff --git a/app/views/admin/plugin/index.php b/app/views/admin/plugin/index.php
index 7187a77..3266c77 100644
--- a/app/views/admin/plugin/index.php
+++ b/app/views/admin/plugin/index.php
@@ -90,13 +90,6 @@ use Studip\Button, Studip\LinkButton;
</td>
<td class="actions">
<? $actionMenu = ActionMenu::get() ?>
- <? if (in_array('StandardPlugin', $plugin['type'])): ?>
- <? $actionMenu->addLink(
- $controller->url_for('admin/plugin/default_activation/' . $pluginid),
- _('In Veranstaltungen aktivieren'),
- Icon::create('seminar+add', 'clickable', ['title' => _('In Veranstaltungen aktivieren')])
- ) ?>
- <? endif ?>
<? $actionMenu->addLink(
$controller->url_for('admin/role/assign_plugin_role/' . $pluginid),
_('Zugriffsrechte bearbeiten'),
@@ -114,8 +107,6 @@ use Studip\Button, Studip\LinkButton;
]),
['data-dialog' => 'size=auto;reload-on-close']
) ?>
- <? endif ?>
- <? if (!$plugin['depends'] && isset($update_info[$pluginid]['version']) && !$plugin['core']): ?>
<? $actionMenu->addLink(
$controller->url_for('admin/plugin/download/' . $pluginid),
_('Herunterladen'),
diff --git a/db/migrations/5.1.28_drop_default_activations.php b/db/migrations/5.1.28_drop_default_activations.php
new file mode 100644
index 0000000..bc5b758
--- /dev/null
+++ b/db/migrations/5.1.28_drop_default_activations.php
@@ -0,0 +1,29 @@
+<?php
+
+class DropDefaultActivations extends Migration
+{
+ public function description()
+ {
+ return 'Drop unused plugin default activations';
+ }
+
+ public function up()
+ {
+ $db = DBManager::get();
+
+ $db->exec('DROP TABLE IF EXISTS plugins_default_activations');
+ }
+
+ public function down()
+ {
+ $db = DBManager::get();
+
+ $db->exec("
+ CREATE TABLE plugins_default_activations (
+ pluginid int(10) unsigned NOT NULL DEFAULT 0,
+ institutid char(32) COLLATE latin1_bin NOT NULL DEFAULT '',
+ PRIMARY KEY (pluginid, institutid)
+ )
+ ");
+ }
+}
diff --git a/lib/classes/PluginAdministration.php b/lib/classes/PluginAdministration.php
index 123a0f2..caf80ce 100644
--- a/lib/classes/PluginAdministration.php
+++ b/lib/classes/PluginAdministration.php
@@ -292,32 +292,6 @@ class PluginAdministration
}
/**
- * Get a list of all available institutes.
- */
- public function getInstitutes()
- {
- $db = DBManager::get();
- $institutes = [];
-
- $sql = 'SELECT Institut_id, Name, fakultaets_id, Institut_id = fakultaets_id AS is_fak
- FROM Institute ORDER BY is_fak DESC, Name';
- $result = $db->query($sql)->fetchAll();
-
- foreach ($result as $row) {
- $inst_id = $row['Institut_id'];
- $fak_id = $row['fakultaets_id'];
-
- if ($inst_id == $fak_id) {
- $institutes[$inst_id] = ['name' => $row['Name']];
- } else {
- $institutes[$fak_id]['children'][$inst_id] = ['name' => $row['Name']];
- }
- }
-
- return $institutes;
- }
-
- /**
* Get a list of the types of all installed plugins.
*
* @return array list of plugin types
diff --git a/lib/plugins/engine/PluginManager.class.php b/lib/plugins/engine/PluginManager.class.php
index 9216754..1745e50 100644
--- a/lib/plugins/engine/PluginManager.class.php
+++ b/lib/plugins/engine/PluginManager.class.php
@@ -300,43 +300,6 @@ class PluginManager
}
/**
- * Returns the list of institutes for which a specific plugin is
- * enabled by default.
- *
- * @param int $id id of the plugin
- */
- public function getDefaultActivations ($id)
- {
- $db = DBManager::get();
-
- $result = $db->query("SELECT institutid FROM plugins_default_activations
- WHERE pluginid = '$id'");
-
- return $result->fetchAll(PDO::FETCH_COLUMN);
- }
-
- /**
- * Set the list of institutes for which a specific plugin should
- * be enabled by default.
- *
- * @param int $id id of the plugin
- * @param array $institutes array of institute ids
- */
- public function setDefaultActivations ($id, $institutes)
- {
- $db = DBManager::get();
-
- $result = $db->query("DELETE FROM plugins_default_activations
- WHERE pluginid = '$id'");
-
- $stmt = $db->prepare("INSERT INTO plugins_default_activations
- (pluginid, institutid) VALUES (?,?)");
- foreach ($institutes as $instid) {
- $stmt->execute([$id, $instid]);
- }
- }
-
- /**
* Disable loading of all non-core plugins for the current session.
*
* @param bool $status true: disable non-core plugins
@@ -496,7 +459,6 @@ class PluginManager
$db->execute("DELETE FROM plugins WHERE pluginid = ?", [$id]);
$db->execute("DELETE FROM plugins_activated WHERE pluginid = ?", [$id]);
- $db->execute("DELETE FROM plugins_default_activations WHERE pluginid = ?", [$id]);
$db->execute("DELETE FROM roles_plugins WHERE pluginid = ?", [$id]);
unset($this->plugins[$id]);