Merge pull request #4697 from AngelFQC/BT20709

Extra access to session admin
pull/4707/head
Nicolas Ducoulombier 3 years ago committed by GitHub
commit 00b8566118
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 42
      main/admin/index.php
  2. 3
      main/install/configuration.dist.php
  3. 4
      plugin/zoom/join_meeting.php
  4. 22
      plugin/zoom/lib/ZoomPlugin.php

@ -332,23 +332,33 @@ if (api_is_platform_admin()) {
$blocks['courses']['items'] = $items;
$blocks['courses']['extra'] = null;
}
/* Platform */
$blocks['platform']['icon'] = Display::return_icon(
/* Platform */
$blockPlatform = [
'icon' => Display::return_icon(
'platform.png',
get_lang('Platform'),
[],
ICON_SIZE_MEDIUM,
false
);
$blocks['platform']['label'] = api_ucfirst(get_lang('Platform'));
$blocks['platform']['class'] = 'block-admin-platform';
$blocks['platform']['editable'] = true;
),
'label' => api_ucfirst(get_lang('Platform')),
'class' => 'block-admin-platform',
'editable' => false,
'extraContent' => '',
'search_form' => '',
'items' => [],
'extra' => null,
];
if (api_is_platform_admin()) {
$blockPlatform['editable'] = true;
$platformBlockExtraFile = "{$adminExtraContentDir}block-admin-platform_extra.html";
if (file_exists($platformBlockExtraFile)) {
$blocks['platform']['extraContent'] = file_get_contents($platformBlockExtraFile);
$blockPlatform['extraContent'] = file_get_contents($platformBlockExtraFile);
}
$search_form = ' <form method="get" action="settings.php" class="form-inline">
@ -363,7 +373,7 @@ if (api_is_platform_admin()) {
</button>
</div>
</form>';
$blocks['platform']['search_form'] = $search_form;
$blockPlatform['search_form'] = $search_form;
$items = [];
$items[] = [
@ -506,8 +516,20 @@ if (api_is_platform_admin()) {
];
}
$blocks['platform']['items'] = $items;
$blocks['platform']['extra'] = null;
$blockPlatform['items'] = $items;
} elseif (api_is_session_admin() && api_get_configuration_value('session_admin_access_system_announcement')) {
$items = [];
$items[] = [
'class' => 'item-global-announcement',
'url' => 'system_announcements.php',
'label' => get_lang('SystemAnnouncements'),
];
$blockPlatform['items'] = $items;
}
if (api_is_platform_admin(true)) {
$blocks['platform'] = $blockPlatform;
}
/* Sessions */

@ -2448,6 +2448,9 @@ INSERT INTO extra_field_options (field_id, option_value, display_text, priority,
//Hides the link to the course catalog in the menu when the catalog is public.
// $_configuration['catalog_hide_public_link'] = false;
// Display the Portal News link in the admin page to session admin users
//$_configuration['session_admin_access_system_announcement'] = false;
// KEEP THIS AT THE END
// -------- Custom DB changes
// Add user activation by confirmation email

@ -63,7 +63,9 @@ try {
$detailsURL = api_get_path(WEB_PLUGIN_PATH).'zoom/meeting.php?meetingId='.$meeting->getMeetingId();
}
if (api_is_platform_admin()) {
$allowAnnouncementsToSessionAdmin = api_get_configuration_value('session_admin_access_system_announcement');
if (api_is_platform_admin($allowAnnouncementsToSessionAdmin)) {
$announcementUrl = '';
if ($announcement = $meeting->getSysAnnouncement()) {

@ -87,6 +87,7 @@ class ZoomPlugin extends Plugin
COURSEMANAGER => get_lang('Teacher'),
STUDENT => get_lang('Student'),
STUDENT_BOSS => get_lang('StudentBoss'),
SESSIONADMIN => get_lang('SessionsAdmin'),
],
'attributes' => ['multiple' => 'multiple'],
],
@ -1321,9 +1322,12 @@ class ZoomPlugin extends Plugin
return Database::getManager()->getRepository(Recording::class);
}
public function getToolbar($returnUrl = '')
public function getToolbar(string $returnUrl = ''): string
{
if (!api_is_platform_admin()) {
$isPlatformOrSessionAdmin = api_is_platform_admin(true);
$isSessionAdmin = api_is_session_admin();
if (!$isPlatformOrSessionAdmin) {
return '';
}
@ -1351,19 +1355,19 @@ class ZoomPlugin extends Plugin
);
}
if (api_is_platform_admin()) {
if (!$isSessionAdmin) {
$actionsLeft .= Display::url(
Display::return_icon('agenda.png', get_lang('Calendar'), [], ICON_SIZE_MEDIUM),
'calendar.php'
);
$actionsLeft .=
Display::url(
Display::return_icon('settings.png', get_lang('Settings'), null, ICON_SIZE_MEDIUM),
api_get_path(WEB_CODE_PATH).'admin/configure_plugin.php?name=zoom'
).$back;
$actionsLeft .= Display::url(
Display::return_icon('settings.png', get_lang('Settings'), null, ICON_SIZE_MEDIUM),
api_get_path(WEB_CODE_PATH).'admin/configure_plugin.php?name=zoom'
);
}
return Display::toolbarAction('toolbar', [$actionsLeft]);
return Display::toolbarAction('toolbar', [$back.PHP_EOL.$actionsLeft]);
}
public function getRecordingSetting()

Loading…
Cancel
Save