aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Schröder, M. A. <schroeder@data-quest.de>2026-02-18 11:26:21 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2026-02-18 11:26:21 +0000
commit93ab04fdc51ae681ff2d4ec9774d2b44244ea2f2 (patch)
tree1ae8fe74690ca02db422001280791e0d38726037
parentf87679a9d8ef2ea25526897da8aa761287cacabc (diff)
Resolve "ILIAS-Schnittstelle: Anzeige von Arbeitsbereichen in Navigation und Arbeitsplatz auch unterhalb von tutor"
Closes #6272 Merge request studip/studip!4742
-rw-r--r--app/controllers/my_ilias_accounts.php10
-rw-r--r--lib/ilias_interface/ConnectedIlias.php4
-rw-r--r--lib/modules/IliasInterfaceModule.php25
3 files changed, 27 insertions, 12 deletions
diff --git a/app/controllers/my_ilias_accounts.php b/app/controllers/my_ilias_accounts.php
index bbb7ecf..ad22248 100644
--- a/app/controllers/my_ilias_accounts.php
+++ b/app/controllers/my_ilias_accounts.php
@@ -234,7 +234,7 @@ class MyIliasAccountsController extends AuthenticatedController
}
/**
- * Shows ilias courses for active user
+ * Shows ilias courses and workgroups for active user
*/
public function my_courses_action()
{
@@ -286,7 +286,7 @@ class MyIliasAccountsController extends AuthenticatedController
$widget = new ActionsWidget();
foreach ($this->ilias_list as $ilias_list_index => $ilias) {
- if ($GLOBALS['perm']->have_perm('autor')) {
+ if (User::findCurrent()->hasPermissionLevel('autor')) {
$widget->addLink(
sprintf(_('Zur %s-Startseite'), $ilias->getName()),
$this->url_for('my_ilias_accounts/redirect/' . $ilias_list_index . '/login'),
@@ -337,7 +337,7 @@ class MyIliasAccountsController extends AuthenticatedController
}
}
- if ($ilias->ilias_config['workgroup_category']) {
+ if ($ilias->ilias_config['workgroup_category'] && User::findCurrent()->hasPermissionLevel('tutor')) {
// Prepare search object for MultiPersonSearch.
if (empty($this->add_member_search)) {
$this->add_member_search = new PermissionSearch(
@@ -351,13 +351,13 @@ class MyIliasAccountsController extends AuthenticatedController
);
}
- $this->workgroups_list[$ilias_list_index] = $ilias->getUserWorkgroups($GLOBALS['perm']->have_perm('root'));
+ $this->workgroups_list[$ilias_list_index] = $ilias->getUserWorkgroups(User::findCurrent()->hasPermissionLevel('root'));
$this->add_workgroups_perm[$ilias_list_index] =
!empty($ilias->ilias_config['workgroup_category'])
&& !empty($ilias->ilias_config['workgroup_role'])
&& !empty($ilias->ilias_config['workgroup_perm'])
- && $GLOBALS['perm']->have_perm($ilias->ilias_config['workgroup_perm']);
+ && User::findCurrent()->hasPermissionLevel($ilias->ilias_config['workgroup_perm']);
}
}
}
diff --git a/lib/ilias_interface/ConnectedIlias.php b/lib/ilias_interface/ConnectedIlias.php
index c7bdc76..27510bc 100644
--- a/lib/ilias_interface/ConnectedIlias.php
+++ b/lib/ilias_interface/ConnectedIlias.php
@@ -180,8 +180,8 @@ class ConnectedIlias
'reconnect_accounts' => false,
'user_data_category' => '',
'matriculation' => '',
- 'discipline_1' => ['id' => ''],
- 'discipline_2' => ['id' => ''],
+ 'discipline_1' => ['id' => '', 'name' => ''],
+ 'discipline_2' => ['id' => '', 'name' => ''],
'allow_change_account' => false,
'category_create_on_add_module' => false,
'category_to_desktop' => false,
diff --git a/lib/modules/IliasInterfaceModule.php b/lib/modules/IliasInterfaceModule.php
index 6f9eca8..0168e2b 100644
--- a/lib/modules/IliasInterfaceModule.php
+++ b/lib/modules/IliasInterfaceModule.php
@@ -17,22 +17,37 @@ class IliasInterfaceModule extends CorePlugin implements StudipModuleExtended, S
parent::__construct();
if (Config::get()->ILIAS_INTERFACE_ENABLE) {
$ilias_interface_config = Config::get()->ILIAS_INTERFACE_BASIC_SETTINGS;
- if (Seminar_Perm::get()->have_perm('root')) {
+ $workgroups = false;
+ $learning_objects = false;
+ foreach (Config::get()->ILIAS_INTERFACE_SETTINGS as $ilias_index => $ilias_config) {
+ if ($ilias_config['is_active']) {
+ if (!empty($ilias_config['workgroup_category']) && User::findCurrent()->hasPermissionLevel('tutor')) {
+ $workgroups = true;
+ }
+ if (!empty($ilias_interface_config['create_objects'])
+ && !empty($ilias_interface_config['create_category'])
+ && User::findCurrent()->hasPermissionLevel($ilias_config['author_perm'])) {
+ $learning_objects = true;
+ }
+ }
+ }
+
+ if (User::findCurrent()->hasPermissionLevel('root')) {
Navigation::addItem('/admin/config/ilias_interface',
new Navigation(_('ILIAS-Schnittstelle'), 'dispatch.php/admin/ilias_interface'));
}
- if (Seminar_Perm::get()->have_perm('tutor') || Seminar_Perm::get()->have_perm('autor')) {
+ if (User::findCurrent()->hasPermissionLevel('autor')) {
$ilias = new Navigation(_('ILIAS'), 'dispatch.php/my_ilias_accounts/my_courses');
$ilias->setImage(Icon::create('ilias'));
$ilias->setDescription(_('Schnittstelle zu ILIAS'));
$ilias->addSubNavigation(
'my_courses',
- new Navigation(_('Meine Kurse'), 'dispatch.php/my_ilias_accounts/my_courses')
+ new Navigation($workgroups ? _('Meine Kurse und Arbeitsbereiche') : _('Meine Kurse'), 'dispatch.php/my_ilias_accounts/my_courses')
);
- if (Seminar_Perm::get()->have_perm('root') || !empty($ilias_interface_config['show_tools_page'])) {
+ if (User::findCurrent()->hasPermissionLevel('root') || !empty($ilias_interface_config['show_tools_page'])) {
$ilias->addSubNavigation(
'my_accounts',
- new Navigation(_('Meine Lernobjekte und Accounts'), 'dispatch.php/my_ilias_accounts')
+ new Navigation($learning_objects ? _('Meine Lernobjekte und Accounts') : _('Meine Accounts'), 'dispatch.php/my_ilias_accounts')
);
}
Navigation::addItem('/contents/my_ilias_accounts', $ilias);