diff options
| -rw-r--r-- | app/controllers/my_ilias_accounts.php | 10 | ||||
| -rw-r--r-- | lib/ilias_interface/ConnectedIlias.php | 4 | ||||
| -rw-r--r-- | lib/modules/IliasInterfaceModule.php | 25 |
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); |
