aboutsummaryrefslogtreecommitdiff
path: root/lib/plugins/engine/PluginEngine.php
diff options
context:
space:
mode:
authorThomas Hackl <hackl@data-quest.de>2025-12-19 08:44:03 +0100
committerThomas Hackl <hackl@data-quest.de>2025-12-19 08:44:03 +0100
commit1c78a3b0a73e72d34714fa749aff293dbda6b4d2 (patch)
treea6638fb62ef5e672b0e326ebeb204e8f47afafeb /lib/plugins/engine/PluginEngine.php
parent4e8a808e1a3a0c6698afaacf50173051bcf1dcee (diff)
Resolve "Deeplinks und Definition von Kurz-URLs"
Closes #5896 Merge request studip/studip!4570
Diffstat (limited to 'lib/plugins/engine/PluginEngine.php')
-rw-r--r--lib/plugins/engine/PluginEngine.php16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/plugins/engine/PluginEngine.php b/lib/plugins/engine/PluginEngine.php
index 52f94af..599b4f2 100644
--- a/lib/plugins/engine/PluginEngine.php
+++ b/lib/plugins/engine/PluginEngine.php
@@ -42,15 +42,23 @@ class PluginEngine
// load homepage plugins
self::getPlugins(HomepagePlugin::class);
+ $context_id = Context::getId();
// load course plugins
- if (Context::getId()) {
- $modules = self::getPlugins(StudipModule::class, Context::getId());
+ if ($context_id) {
+ $modules = self::getPlugins(StudipModule::class, $context_id);
$navigation = Navigation::getItem('/course');
foreach ($modules as $module) {
- $tabs = $module->getTabNavigation(Context::getId());
+ $tabs = $module->getTabNavigation($context_id);
- if ($navigation && $tabs) {
+ if (!$tabs || !$navigation) {
+ continue;
+ }
+
+ $has_perm = $GLOBALS['perm']->get_studip_perm($context_id);
+ $is_core = $module instanceof CoreOverview;
+
+ if ($has_perm || (!$has_perm && $is_core)) {
$navigation->addToolNavigation($module->getPluginId(), $tabs);
}
}