diff --git a/plugin/zoom/join_meeting.php b/plugin/zoom/join_meeting.php index 746282fccb..b3646cfd4b 100644 --- a/plugin/zoom/join_meeting.php +++ b/plugin/zoom/join_meeting.php @@ -18,12 +18,11 @@ $plugin = ZoomPlugin::create(); $content = ''; /** @var Meeting $meeting */ $meeting = $plugin->getMeetingRepository()->findOneBy(['meetingId' => $meetingId]); +if (null === $meeting) { + api_not_allowed(true, $plugin->get_lang('MeetingNotFound')); +} try { - if (null === $meeting) { - throw new Exception($plugin->get_lang('Meeting not found')); - } - if ($meeting->isCourseMeeting()) { api_protect_course_script(true); } @@ -33,8 +32,6 @@ try { if (!empty($startJoinURL)) { $content .= Display::url($plugin->get_lang('EnterMeeting'), $startJoinURL, ['class' => 'btn btn-primary']); - } else { - //echo Display::return_message($plugin->get_lang('ConferenceNotStarted'), 'warning'); } if ($plugin->userIsConferenceManager($meeting)) { diff --git a/plugin/zoom/lib/ZoomPlugin.php b/plugin/zoom/lib/ZoomPlugin.php index be9090c023..cb24a626fd 100644 --- a/plugin/zoom/lib/ZoomPlugin.php +++ b/plugin/zoom/lib/ZoomPlugin.php @@ -1186,8 +1186,20 @@ class ZoomPlugin extends Plugin return $this->registerUser($meeting, $currentUser)->getCreatedRegistration()->join_url; } - if ($meeting->isCourseMeeting() && $this->userIsCourseConferenceManager()) { - return $meeting->getMeetingInfoGet()->start_url; + if ($meeting->isCourseMeeting()) { + if ($this->userIsCourseConferenceManager()) { + + return $meeting->getMeetingInfoGet()->start_url; + } + $isSubscribed = CourseManager::is_user_subscribed_in_course( + $currentUser->getId(), + api_get_course_id(), + api_get_session_id() + ); + + if ($isSubscribed) { + return $this->registerUser($meeting, $currentUser)->getCreatedRegistration()->join_url; + } } if ('true' === $this->get('enableParticipantRegistration')) { diff --git a/plugin/zoom/start.php b/plugin/zoom/start.php index 6682f7552a..52c5ac071e 100755 --- a/plugin/zoom/start.php +++ b/plugin/zoom/start.php @@ -23,7 +23,8 @@ $group = api_get_group_entity(); $session = api_get_session_entity(); $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; -if ($plugin->userIsCourseConferenceManager()) { +$isManager = $plugin->userIsCourseConferenceManager(); +if ($isManager) { switch ($action) { case 'delete': $meeting = $plugin->getMeetingRepository()->findOneBy(['meetingId' => $_REQUEST['meetingId']]); @@ -63,5 +64,6 @@ try { ); } +$tpl->assign('is_manager', $isManager); $tpl->assign('content', $tpl->fetch('zoom/view/start.tpl')); $tpl->display_one_col_template(); diff --git a/plugin/zoom/view/start.tpl b/plugin/zoom/view/start.tpl index a54acb86e2..35294d35ee 100644 --- a/plugin/zoom/view/start.tpl +++ b/plugin/zoom/view/start.tpl @@ -29,22 +29,22 @@ {{ 'Join'|get_plugin_lang('ZoomPlugin') }} - - {{ 'Edit'|get_lang }} - + {% if is_manager %} + + {{ 'Details'|get_plugin_lang('ZoomPlugin') }} + - - {{ 'Delete'|get_lang }} - + + {{ 'Delete'|get_lang }} + + {% endif %} {% endfor %} -{% else %} - {% endif %} {% if scheduleMeetingForm %}