Moodle
  1. Moodle
  2. MDL-29072

Importing into a course requires incorrect capability on the source course

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor 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:
    • Rank:
      18761

      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.

        Issue Links

          Activity

          Henning Bostelmann created issue -
          Henning Bostelmann made changes -
          Field Original Value New Value
          Description At the moment, a user cannot import course contents from course A into course B unless he has the capability moodle/backup: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.
          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.
          Henning Bostelmann made changes -
          Link This issue has a non-specific relationship to MDL-24518 [ MDL-24518 ]
          Henning Bostelmann made changes -
          Status Open [ 1 ] Peer review in progress [ 10013 ]
          Pull Master Diff URL https://github.com/bostelm/moodle/compare/master...MDL-29072
          Pull Master Branch MDL-29072
          Assignee Eloy Lafuente (stronk7) [ stronk7 ] Henning Bostelmann [ bostelm ]
          Peer reviewer stronk7
          Testing Instructions 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:
                    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.

          Henning Bostelmann made changes -
          Status Peer review in progress [ 10013 ] Development in progress [ 3 ]
          Henning Bostelmann made changes -
          Status Development in progress [ 3 ] Waiting for peer review [ 10012 ]
          Henning Bostelmann made changes -
          Link This issue has a non-specific relationship to MDL-28488 [ MDL-28488 ]
          Eloy Lafuente (stronk7) made changes -
          Original Estimate 0 minutes [ 0 ]
          Remaining Estimate 0 minutes [ 0 ]
          Status Waiting for peer review [ 10012 ] Peer review in progress [ 10013 ]
          Testing Instructions 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:
                    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.

          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.

          Eloy Lafuente (stronk7) made changes -
          Fix Version/s 2.0.5 [ 10950 ]
          Fix Version/s 2.1.2 [ 10851 ]
          Affects Version/s 2.0.4 [ 10652 ]
          Affects Version/s 2.2 [ 10656 ]
          Eloy Lafuente (stronk7) made changes -
          Status Peer review in progress [ 10013 ] Development in progress [ 3 ]
          Eloy Lafuente (stronk7) made changes -
          Status Development in progress [ 3 ] Waiting for integration review [ 10010 ]
          Pull from Repository git://github.com/bostelm/moodle.git
          Sam Hemelryk made changes -
          Status Waiting for integration review [ 10010 ] Integration review in progress [ 10004 ]
          Integrator samhemelryk
          Currently in integration Yes
          Sam Hemelryk made changes -
          Status Integration review in progress [ 10004 ] Waiting for testing [ 10005 ]
          Andrew Davis made changes -
          Status Waiting for testing [ 10005 ] Testing in progress [ 10011 ]
          Tester andyjdavis
          Andrew Davis made changes -
          Status Testing in progress [ 10011 ] Tested [ 10006 ]
          Eloy Lafuente (stronk7) made changes -
          Status Tested [ 10006 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          Currently in integration Yes
          Integration date 7/Sep/11
          Helen Foster made changes -
          Labels patch

            People

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

              Dates

              • Created:
                Updated:
                Resolved: