diff --git a/plugin/zoom/join_meeting.php b/plugin/zoom/join_meeting.php index f3d7ef9a92..6c2909a5bc 100644 --- a/plugin/zoom/join_meeting.php +++ b/plugin/zoom/join_meeting.php @@ -15,7 +15,6 @@ if (empty($meetingId)) { } $plugin = ZoomPlugin::create(); - Display::display_header($plugin->get_title()); echo $plugin->getToolbar(); /** @var MeetingEntity $meeting */ diff --git a/plugin/zoom/lib/ZoomPlugin.php b/plugin/zoom/lib/ZoomPlugin.php index 3ace15439f..2792192ed5 100644 --- a/plugin/zoom/lib/ZoomPlugin.php +++ b/plugin/zoom/lib/ZoomPlugin.php @@ -326,6 +326,7 @@ class ZoomPlugin extends Plugin Display::addFlash( Display::return_message($this->get_lang('MeetingUpdated'), 'confirm') ); + } catch (Exception $exception) { Display::addFlash( Display::return_message($exception->getMessage(), 'error') @@ -736,10 +737,8 @@ class ZoomPlugin extends Plugin Display::return_message($this->get_lang('GroupUsersWereRegistered')) ); } - api_location('meeting.php?meetingId='.$newMeeting->getMeetingId()); - } elseif (null !== $user) { - api_location('meeting.php?meetingId='.$newMeeting->getMeetingId()); } + api_location('meeting.php?meetingId='.$newMeeting->getMeetingId()); } catch (Exception $exception) { Display::addFlash( Display::return_message($exception->getMessage(), 'error') @@ -758,21 +757,26 @@ class ZoomPlugin extends Plugin } /** - * @param MeetingEntity $meetingEntity + * @param MeetingEntity $meeting * * @return bool whether the logged-in user can manage conferences in this context, that is either * the current course or session coach, the platform admin or the current course admin */ - public function userIsConferenceManager($meetingEntity) + public function userIsConferenceManager($meeting) { - if (null === $meetingEntity) { + if (null === $meeting) { return false; } - return api_is_coach() - || api_is_platform_admin() - || $meetingEntity->isCourseMeeting() && api_get_course_id() && api_is_course_admin() - || $meetingEntity->isUserMeeting() && $meetingEntity->getUser()->getId() == api_get_user_id(); + if (api_is_coach() || api_is_platform_admin()) { + return true; + } + + if ($meeting->isCourseMeeting() && api_get_course_id() && api_is_course_admin()) { + return true; + } + + return $meeting->isUserMeeting() && $meeting->getUser()->getId() == api_get_user_id(); } /** @@ -932,6 +936,11 @@ class ZoomPlugin extends Plugin if ($isGlobal || $currentUser === $meeting->getUser()) { return $meeting->getMeetingInfoGet()->start_url; } + + if ($meeting->isCourseMeeting() && $this->userIsConferenceManager($meeting)) { + return $meeting->getMeetingInfoGet()->start_url; + } + break; case 'started': if ($currentUser === $meeting->getUser()) { diff --git a/plugin/zoom/meetings.php b/plugin/zoom/meetings.php index 9c7d8322be..019c1eb989 100644 --- a/plugin/zoom/meetings.php +++ b/plugin/zoom/meetings.php @@ -17,8 +17,9 @@ $form = $plugin->getAdminSearchForm(); $startDate = new DateTime($form->getElement('start')->getValue()); $endDate = new DateTime($form->getElement('end')->getValue()); -$tpl = new Template(); +$scheduleForm = $plugin->getScheduleMeetingForm($user); +$tpl = new Template(); $tpl->assign('meetings', $plugin->getMeetingRepository()->periodUserMeetings($startDate, $endDate, $user)); if ('true' === $plugin->get('enableCloudRecording')) { $tpl->assign( @@ -29,7 +30,7 @@ if ('true' === $plugin->get('enableCloudRecording')) { $tpl->assign('actions', $plugin->getToolbar()); $tpl->assign('search_form', $form->returnForm()); -$tpl->assign('schedule_form', $plugin->getScheduleMeetingForm($user)->returnForm()); +$tpl->assign('schedule_form', $scheduleForm->returnForm()); $tpl->assign('type', 'user'); $tpl->assign('content', $tpl->fetch('zoom/view/list.tpl')); $tpl->display_one_col_template(); diff --git a/plugin/zoom/view/list.tpl b/plugin/zoom/view/list.tpl index f727f80cea..3b16ada56d 100644 --- a/plugin/zoom/view/list.tpl +++ b/plugin/zoom/view/list.tpl @@ -9,9 +9,9 @@