J'ai un gros problème côté dev sur un plugin type module d'activité que j'ai créé en Moodle 4.0+
Il y a des paramètres globaux (email d'un gestionnaire et ville par défaut) qui doivent doit être entrés dans le paramétrage global du plugin et non dans l'activité directement, donc dans l'administration.
J'ai donc mis ces paramètres dans le settings.php de mon activité.
Ils sont bien visibles et modifiables par les administrateurs de la plateforme, cependant je n'arrive pas à l'afficher pour les gestionnaires qui n'ont pas le droit site:config.
On ne veux pas leur donner ce rôle car trop de pouvoir, mais d'un autre côté il faut qu'ils puissent modifier eux même ce paramètre.
Est-ce que quelqu'un a déjà eu un problème similaire ?
On avait réussi a afficher un plugin local pour des gestionnaires grâce à un bout de code dans le settings.php du plugin local en question, cependant c'est car dans le admin/settings/plugins.php il y a un "laisser passer" pour les plugins locaux ligne 785
// Extend settings for each local plugin. Note that their settings may be in any part of the
// settings tree and may be visible not only for administrators.
$plugins = core_plugin_manager::instance()->get_plugins_of_type('local');
core_collator::asort_objects_by_property($plugins, 'displayname');
foreach ($plugins as $plugin) {
/** @var \core\plugininfo\local $plugin */
$plugin->load_settings($ADMIN, null, $hassiteconfig);
}
On ne vérifie pas le $hassiteconfig, la fonction load_settings pour les plugins locaux ne vérifiant pas non plus les droits.
Voilà je pense avoir tout dis, si quelqu'un a une idée je suis preneuse !
Merci d'avance.
Bonne journée à tous.
Gabrielle