Beiträge von Valery Fremaux

Il manque des capacités. Voici comment les ajouter simplement :

Dans le fichier /lib/db/access.php vers la ligne §633 :

    'moodle/course:importmodule' => array(

        'riskbitmask' => RISK_SPAM,

        'captype' => 'write',
        'contextlevel' => CONTEXT_COURSE,
        'legacy' => array(
            'editingteacher' => CAP_ALLOW,
            'admin' => CAP_ALLOW
        )
    ),

    'moodle/course:exportmodule' => array(

        'captype' => 'read',
        'contextlevel' => CONTEXT_COURSE,
        'legacy' => array(
            'editingteacher' => CAP_ALLOW,
            'admin' => CAP_ALLOW
        )
    ),
 

Dans le fichier /version.php

Augmenter de 1 unité la version de Moodle.
Aller activer les notification de l'administration (Attention, ça recharge les packs de langues installés administrativement).
Terminer la mise à jour (ne fera pas grand chose qu'inscrire les capacités)

Dans le fichier /lang/en_utf8/role.php §27

$string['course:exportmodule'] = 'Cut out a module';
$string['course:importmodule'] = 'Paste in a module';

Dans le fichier moodledata/lang/fr_utf8/role.php §27

$string['course:exportmodule'] = 'Couper un module d\'un cours';
$string['course:importmodule'] = 'Coller un module dans le cours';

Les capacités sont disponibles et on peut tester le déplacement de ressources par un enseignant éditeur.

Non, c'est un bug. Je l'avais imputé aux peu de cours que j'avais dans ma plate-forme de développement. Je vais regarder pourquoi je ne trouve pas "mes cours" en tant qu'enseignant.

C'est plutôt un problème de capacités. Le patch exploite deux nouvelles capacités système

moodle/course:exportmodule et moodle/course:importmodule

Je ne sais pour l'instant pas comment les mettre dans le patch. Je vais essayer quelques entrées manuelles dans mdl_capabilities et voir si je peux publier une injection pour ces capacités.

sinon, temporairement dans la nouvelle fonction module_change_course(...) on peut les désactiver dans le code :

        // check capabilities if not admin
        if (!isadmin()){
/*

            $context = get_context_instance(CONTEXT_COURSE, $COURSE->id);
            //require_capability('moodle/course:exportmodule', $context);
            $context = get_context_instance(CONTEXT_COURSE, $courseid);
            require_capability('moodle/course:importmodule', $context);
*/
        }