Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-29072

Importing into a course requires incorrect capability on the source course

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.4, 2.1.1, 2.2
    • Fix Version/s: 2.0.5, 2.1.2
    • Component/s: Backup
    • Labels:
    • Testing Instructions:
      Hide

      On a Moodle installation (21_STABLE) in standard setup:

      • Create two courses, called "source" and "target". Create some labels in "source" (as example content).
      • On "source", allow the following capabilities for the non-editing teacher role:
        o moodle/backup:backupcourse
        o moodle/backup:configure
        o moodle/backup:backuptargetimport
      • Create a user "U" and enrol the user as follows:
        o into "source" as non-editing teacher,
        o into "target" as editing teacher.
      • Log in as "U".
      • Go to "target" and click on "Import".

      Verify that the course "source" appears in the list. Select "source" and proceed with the import.

      Show
      On a Moodle installation (21_STABLE) in standard setup: Create two courses, called "source" and "target". Create some labels in "source" (as example content). On "source", allow the following capabilities for the non-editing teacher role: o moodle/backup:backupcourse o moodle/backup:configure o moodle/backup:backuptargetimport Create a user "U" and enrol the user as follows: o into "source" as non-editing teacher, o into "target" as editing teacher. Log in as "U". Go to "target" and click on "Import". Verify that the course "source" appears in the list. Select "source" and proceed with the import.
    • Workaround:
      Hide

      Give the capability moodle/restore:restorecourse globally to any user who needs to import course material.

      Show
      Give the capability moodle/restore:restorecourse globally to any user who needs to import course material.
    • Affected Branches:
      MOODLE_20_STABLE, MOODLE_21_STABLE, MOODLE_22_STABLE
    • Fixed Branches:
      MOODLE_20_STABLE, MOODLE_21_STABLE
    • Pull from Repository:
    • Pull Master Branch:

      Description

      At the moment, a user cannot import course contents from course A into course B unless he has the capability moodle/restore:restorecourse in the context of the source course.

      However, according to MDL-24518, this should be controlled by the capability moodle/backup:backuptargetimport .

      To reproduce, on a Moodle installation in standard setup:

      • Create two courses, called "source" and "target". Create some labels in "source" (as example content).
      • On "source", allow the following capabilities for the non-editing teacher role:
        • moodle/backup:backupcourse
        • moodle/backup:configure
        • moodle/backup:backuptargetimport
      • Create a user "U" and enrol the user as follows:
        • into "source" as non-editing teacher,
        • into "target" as editing teacher.
      • Log in as "U".
      • Go to "target" and click on "Import".

      EXPECTED: The list of courses displayed contains the course "source".
      ACTUAL: The list of courses displayed contains only the course "target".

      The underlying problem is that the list is filtered by courses on which the user "U" has the capability moodle/restore:restorecourse . This is done in the constructor of class import_course_search, which is inherited without modification from class restore_course_search.

      Patch will follow.

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            bostelm Henning Bostelmann added a comment -

            MDL-24518 not fixed in Moodle 2.x

            Show
            bostelm Henning Bostelmann added a comment - MDL-24518 not fixed in Moodle 2.x
            Hide
            bostelm Henning Bostelmann added a comment -

            This fix filters the list by moodle/backup:backuptargetimport . I'm not sure whether the other two capabilities (moodle/backup:backupcourse, moodle/backup:configure) are actually needed - and should be included in the filter - or whether the fact that they are needed is a different aspect of the bug. (If you remove them, the import seems to fail at a later stage.)

            I'm providing the fix for the master branch only, will backport it once it's agreed.

            Show
            bostelm Henning Bostelmann added a comment - This fix filters the list by moodle/backup:backuptargetimport . I'm not sure whether the other two capabilities (moodle/backup:backupcourse, moodle/backup:configure) are actually needed - and should be included in the filter - or whether the fact that they are needed is a different aspect of the bug. (If you remove them, the import seems to fail at a later stage.) I'm providing the fix for the master branch only, will backport it once it's agreed.
            Hide
            bostelm Henning Bostelmann added a comment -

            sorry, must have pushed the wrong button

            Show
            bostelm Henning Bostelmann added a comment - sorry, must have pushed the wrong button
            Hide
            bostelm Henning Bostelmann added a comment -

            now requesting peer review!

            Show
            bostelm Henning Bostelmann added a comment - now requesting peer review!
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            Nice one Henning, this does not fix the use case commented in MDL-28488, but is 100x100 correct IMO. The list of courses FROM which content can be imported is 'moodle/backup:backuptargetimport'.

            And the fix seems pretty correct, so sending to integration.

            NOTE for integrators: This should be backported to 20 and 21 stable, hopefully it applies ok.

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - Nice one Henning, this does not fix the use case commented in MDL-28488 , but is 100x100 correct IMO. The list of courses FROM which content can be imported is 'moodle/backup:backuptargetimport'. And the fix seems pretty correct, so sending to integration. NOTE for integrators: This should be backported to 20 and 21 stable, hopefully it applies ok.
            Hide
            samhemelryk Sam Hemelryk added a comment -

            Thanks guys, this has been integrated now

            Show
            samhemelryk Sam Hemelryk added a comment - Thanks guys, this has been integrated now
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            Side note: I've added extra commit fixing invalid whitespace occurrences.

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - Side note: I've added extra commit fixing invalid whitespace occurrences.
            Hide
            andyjdavis Andrew Davis added a comment -

            Works as expected. Thankyou for the detailed testing instructions

            Show
            andyjdavis Andrew Davis added a comment - Works as expected. Thankyou for the detailed testing instructions
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            git & cvs repositories updated with your gorgeous code. Many thanks!

            Closing and ciao

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - git & cvs repositories updated with your gorgeous code. Many thanks! Closing and ciao
            Hide
            brugger Gisele Brugger added a comment -

            Can see this.. the problem is in moodle 2.2.1

            http://moodle.org/mod/forum/discuss.php?d=167476#p860668

            Show
            brugger Gisele Brugger added a comment - Can see this.. the problem is in moodle 2.2.1 http://moodle.org/mod/forum/discuss.php?d=167476#p860668
            Hide
            samhemelryk Sam Hemelryk added a comment -

            Hi Gisele,

            Looks like Eloy has replied on the forum and pointed you towards MDL-26037 about resolving this.

            Cheers
            Sam

            Show
            samhemelryk Sam Hemelryk added a comment - Hi Gisele, Looks like Eloy has replied on the forum and pointed you towards MDL-26037 about resolving this. Cheers Sam

              People

              • Votes:
                1 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  10/Oct/11