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

codingerror in Global Search when "search within enrolled courses only" is set

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide
      1. Log in as admin
      2. Go to Site administration > Advanced features, enable Global search and save.
      3. Go to Site administration > Plugins > Search > Manage global search
      4. Set Searchable courses field to Search within enrolled courses only if not set.
      5. Add a new course
      6. From the cog menu click Permissions
      7. Enter "moodle/course:view" in the Filter field
      8. For the View courses without participation capability, in Roles with permission press the Allow button and click on Authenticated user
      9. Create a new user
      10. Log in as the new user and go to the course created on step 5.
      11. In the Search box in the header enter "bar" and press Enter
      12. In the Search > Search within field select "Course: [Coursename]"
      13. Press Search
      14. Confirm you don't get a DML exception
      Show
      Log in as admin Go to Site administration > Advanced features, enable Global search and save. Go to Site administration > Plugins > Search > Manage global search Set Searchable courses field to Search within enrolled courses only if not set. Add a new course From the cog menu click Permissions Enter "moodle/course:view" in the Filter field For the View courses without participation capability, in Roles with permission press the Allow button and click on Authenticated user Create a new user Log in as the new user and go to the course created on step 5. In the Search box in the header enter "bar" and press Enter In the Search > Search within field select "Course: [Coursename] " Press Search Confirm you don't get a DML exception
    • Affected Branches:
      MOODLE_35_STABLE, MOODLE_37_STABLE, MOODLE_38_STABLE
    • Fixed Branches:
      MOODLE_310_STABLE, MOODLE_39_STABLE
    • Pull 3.9 Branch:
    • Pull 3.10 Branch:
      MDL-62707-310
    • Pull 3.11 Branch:
      MDL-62707-311
    • Pull Master Branch:

      Description

      Steps to recreate -

      • enable global search on Moodle with all settings left as default
      • create a new course "veggies" and a label "cabbage"
      • give the course:view permission to "Authenticated users" for "veggies"
      • log in as a non-admin user, not registered on any courses
      • go into the "veggies" course and search for "cabbage" - no results, as expected, because "searchable courses" is still set to the default of "search within enrolled courses only"
      • from the "search within" drop-down menu choose "course: veggies" and search again

      Result -

      Coding error detected, it must be fixed by a programmer: moodle_database::get_in_or_equal() does not accept empty arrays

      Stack trace:

      • line 770 of /lib/dml/moodle_database.php: coding_exception thrown
      • line 593 of /search/classes/manager.php: call to moodle_database->get_in_or_equal()
      • line 778 of /search/classes/manager.php: call to core_search\manager->get_areas_user_accesses()
      • line 684 of /search/classes/manager.php: call to core_search\manager->search()
      • line 150 of /search/index.php: call to core_search\manager->paged_search()

      The error doesn't occur if you've changed "searchable courses" to "search within all courses the user can access"
       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              pholden Paul Holden
              Reporter:
              mjr66 Mat Ridley
              Peer reviewer:
              Simey Lameze Simey Lameze
              Integrator:
              Andrew Lyons Andrew Lyons
              Tester:
              Janelle Barcega Janelle Barcega
              Participants:
              Component watchers:
              Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Sara Arjona (@sarjona)
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                18/Jan/21

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 5 hours, 30 minutes
                  5h 30m