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 %}