User: Plugin: Justification: add option to enable access to plugin management of user's jutificatives to session admins - refs BT#21386

pull/5132/head
NicoDucou 2 years ago
parent 54d32efd5a
commit f4d8c9aa02
  1. 9
      main/admin/index.php
  2. 2
      main/inc/ajax/user_manager.ajax.php
  3. 4
      main/inc/lib/usermanager.lib.php
  4. 5
      plugin/justification/Justification.php
  5. 3
      plugin/justification/justification_by_user.php
  6. 2
      plugin/justification/lang/english.php
  7. 2
      plugin/justification/lang/french.php
  8. 2
      plugin/justification/lang/spanish.php
  9. 16
      plugin/justification/list.php

@ -194,6 +194,15 @@ if (api_is_platform_admin()) {
return !in_array($item['url'], $urls);
});
}
$allowJustification = ((api_get_plugin_setting('justification', 'tool_enable') === 'true') && (api_get_plugin_setting('justification', 'access_for_session_admin') === 'true'));
if ($allowJustification) {
$items[] = [
'class' => 'item-justification-list',
'url' => api_get_path(WEB_PLUGIN_PATH).'justification/list.php',
'label' => get_lang('Justification'),
];
}
}
if (api_get_configuration_value('allow_session_admin_extra_access')) {

@ -96,7 +96,7 @@ switch ($action) {
echo json_encode($dates);
break;
case 'get_user_like':
if (api_is_platform_admin() || api_is_drh()) {
if (api_is_platform_admin() || api_is_drh() || api_is_session_admin()) {
$query = $_REQUEST['q'];
$conditions = [
'username' => $query,

@ -2438,6 +2438,10 @@ class UserManager
}
}
if (api_is_session_admin() && (api_get_setting('prevent_session_admins_to_manage_all_users') === 'true')) {
$sql_query .= ' AND user.creator_id = '.api_get_user_id();
}
if (!empty($onlyThisUserList)) {
$onlyThisUserListToString = implode("','", $onlyThisUserList);
$sql_query .= " AND user.id IN ('$onlyThisUserListToString') ";

@ -6,11 +6,12 @@ class Justification extends Plugin
protected function __construct()
{
parent::__construct(
'1.1',
'Julio Montoya',
'1.2',
'Julio Montoya, Nicolas Ducoulombier',
[
'tool_enable' => 'boolean',
'notification_to_creator_only' => 'boolean',
'access_for_session_admin' => 'boolean',
'default_course_id' => 'text',
]
);

@ -3,7 +3,8 @@
require_once __DIR__.'/../../main/inc/global.inc.php';
api_protect_admin_script();
$allowSessionAdmins = api_get_plugin_setting('justification', 'access_for_session_admin') === 'true';
api_protect_admin_script($allowSessionAdmins);
$tool = 'justification';
$plugin = Justification::create();

@ -23,3 +23,5 @@ $strings['JustificationsCompleted'] = "Justifications completed";
$strings['SendNotificationToAllAdmins'] = "Send a notification to the administrator";
$strings['notification_to_creator_only'] = "Send notification to user's creator only";
$strings['notification_to_creator_only_help'] = "If activated then the notification will be sent only to the user who created the user who send the justifications and not to all admins";
$strings['access_for_session_admin'] = "Enable session admins to manage users in plugin";
$strings['access_for_session_admin_help'] = "If activated it enables session admins to access the plugin and the user's list and justification management.";

@ -23,3 +23,5 @@ $strings['JustificationsCompleted'] = "Dossier complété";
$strings['SendNotificationToAllAdmins'] = "Envoyer une notification à l'administrateur";
$strings['notification_to_creator_only'] = "Envoyer la notification uniquement au créateur";
$strings['notification_to_creator_only_help'] = "Si cette option est activée alors la notification est envoyée uniquement à l'utilisateur qui a créé l'utilisateur qui envoie les justificatifs et non à tous les admins de la plateforme";
$strings['access_for_session_admin'] = "Permettre aux administrateurs de session de gérer les utilisateurs dans le plugin";
$strings['access_for_session_admin_help'] = "Si activé alors les administrateurs de session peuvent accéder au plugin et à la liste des utilisateurs et la gestion de leurs justificatifs.";

@ -23,3 +23,5 @@ $strings['JustificationsCompleted'] = "justificativos completados";
$strings['SendNotificationToAllAdmins'] = "Enviar una notificación al administrador";
$strings['notification_to_creator_only'] = "Enviar la notificación solo al creador del usuario";
$strings['notification_to_creator_only_help'] = "Si esta opción esta activada entonces la notificación sera enviada solo al usuario que ha creado el usuario quien envia sus justificativo";
$strings['access_for_session_admin'] = "Permitir a los administradores de sesión gestionar los usuarios en el plugin";
$strings['access_for_session_admin_help'] = "Si activado entonces los administradores de sesión pueden acceder al plugin y a la lista de usuarios y gestionar sus justificativos.";

@ -3,7 +3,8 @@
require_once __DIR__.'/../../main/inc/global.inc.php';
api_protect_admin_script();
$allowSessionAdmins = api_get_plugin_setting('justification', 'access_for_session_admin') === 'true';
api_protect_admin_script($allowSessionAdmins);
$tool = 'justification';
$plugin = Justification::create();
@ -31,12 +32,15 @@ switch ($action) {
break;
}
$actionLinks .= Display::toolbarButton(
if (api_is_platform_admin()) {
$actionLinks .= Display::toolbarButton(
$plugin->get_lang('Add'),
api_get_path(WEB_PLUGIN_PATH).'justification/add.php',
'plus',
'primary'
);
);
}
$actionLinks .= Display::toolbarButton(
$plugin->get_lang('Users'),
api_get_path(WEB_PLUGIN_PATH).'justification/justification_by_user.php',
@ -44,12 +48,14 @@ $actionLinks .= Display::toolbarButton(
'primary'
);
$actionLinks .= Display::toolbarButton(
if (api_is_platform_admin()) {
$actionLinks .= Display::toolbarButton(
$plugin->get_lang('SetNewCourse'),
api_get_path(WEB_PLUGIN_PATH).'justification/set_course.php',
'book',
'primary'
);
);
}
$tpl->assign(
'actions',

Loading…
Cancel
Save