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

Message API does not respect user_get_user_details parameters type

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 3.4.6, 3.5.2, 3.6
    • 3.4.7, 3.5.4
    • Messages

    Description

      The first parameter of user_get_user_details must be a user record (from mdl_user) as indicated in the function documentation.

      It happens that the message API is calling this function via show_online_status passing as parameter partial user objects that are not user records from the DB

      I discovered this while working in a fix for MDL-63395

      Some errors, in this case the user object is missing the deleted field from the user table:

      1) core_message_api_testcase::test_search_users_in_course
      Undefined property: stdClass::$deleted

      /Users/juanleyvadelgado/moodles/stable_master/moodle/user/lib.php:1153
      /Users/juanleyvadelgado/moodles/stable_master/moodle/user/lib.php:272
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/helper.php:338
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/helper.php:317
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/api.php:185
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/tests/api_test.php:164
      /Users/juanleyvadelgado/moodles/stable_master/moodle/lib/phpunit/classes/advanced_testcase.php:80

      To re-run:
      vendor/bin/phpunit "core_message_api_testcase" message/tests/api_test.php

      2) core_message_api_testcase::test_search_users
      Undefined property: stdClass::$deleted

      /Users/juanleyvadelgado/moodles/stable_master/moodle/user/lib.php:1153
      /Users/juanleyvadelgado/moodles/stable_master/moodle/user/lib.php:272
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/helper.php:338
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/helper.php:317
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/api.php:229
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/tests/api_test.php:262
      /Users/juanleyvadelgado/moodles/stable_master/moodle/lib/phpunit/classes/advanced_testcase.php:80

      To re-run:
      vendor/bin/phpunit "core_message_api_testcase" message/tests/api_test.php

      3) core_message_api_testcase::test_search_messages
      Undefined property: stdClass::$deleted

      /Users/juanleyvadelgado/moodles/stable_master/moodle/user/lib.php:1153
      /Users/juanleyvadelgado/moodles/stable_master/moodle/user/lib.php:272
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/helper.php:338
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/helper.php:317
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/classes/api.php:144
      /Users/juanleyvadelgado/moodles/stable_master/moodle/message/tests/api_test.php:303
      /Users/juanleyvadelgado/moodles/stable_master/moodle/lib/phpunit/classes/advanced_testcase.php:80

      Attachments

        Activity

          People

            cescobedo Carlos Escobedo
            jleyva Juan Leyva
            Juan Leyva Juan Leyva
            Eloy Lafuente (stronk7) Eloy Lafuente (stronk7)
            CiBoT CiBoT
            Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Laurent David, Raquel Ortega, Sara Arjona (@sarjona)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              14/Jan/19