Moodle
  1. Moodle
  2. MDL-26408

IMS Enterprise admin notifications fail on message_send()

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.1, 2.4.6, 2.5.1, 2.6
    • Fix Version/s: 2.4.7, 2.5.3
    • Component/s: Enrolments, Messages
    • Labels:
    • Testing Instructions:
      Hide

      PREREQUSITE: your moodle configured to send email.

      1. Download the attached IMS enterprise enrolment file and put it in your moodledata directory
      2. Go to Home / Site administration / Plugins / Enrolments
      3. Enable the IMS enterprise enrolment plugin
      4. In the settings, provide the path to the file you uploaded in File location
      5. Tick Notify admin by email
      6. Save settings
      7. Go to the link 'perform an IMS Enterprise import right now'
      8. VERIFY: the ims enrollment works ok
      9. VERIFY: no debugging is experienced
      10. VERIFY: you recieve a message the enrolment (prob email0
      Show
      PREREQUSITE: your moodle configured to send email. Download the attached IMS enterprise enrolment file and put it in your moodledata directory Go to Home / Site administration / Plugins / Enrolments Enable the IMS enterprise enrolment plugin In the settings, provide the path to the file you uploaded in File location Tick Notify admin by email Save settings Go to the link 'perform an IMS Enterprise import right now' VERIFY: the ims enrollment works ok VERIFY: no debugging is experienced VERIFY: you recieve a message the enrolment (prob email0
    • Difficulty:
      Easy
    • Affected Branches:
      MOODLE_20_STABLE, MOODLE_24_STABLE, MOODLE_25_STABLE, MOODLE_26_STABLE
    • Fixed Branches:
      MOODLE_24_STABLE, MOODLE_25_STABLE
    • Pull Master Branch:
      MDL-26408-master
    • Story Points (Obsolete):
      2
    • Sprint:
      BACKEND Sprint 5

      Description

      Error:
      !!! Coding error detected, it must be fixed by a programmer: Could not load preference message_provider_imsenterprise_imsenterprise_enrolment_loggedoff. Does the component and name you supplied to message_send() match a row in message_providers? Message providers must appear in the database so users can configure how they will be notified when they receive messages. !!!
      !! blah !!
      !! Stack trace: * line 126 of /lib/messagelib.php: coding_exception thrown

      • line 247 of /enrol/imsenterprise/lib.php: call to message_send()
      • line 364 of /lib/cronlib.php: call to enrol_imsenterprise_plugin->cron()
      • line 79 of /admin/cron.php: call to cron_run()
        !!

      Does look like any db/messages.php

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            Troy Williams added a comment -

            Sorry, Does not look like any db/messages.php file.

            Show
            Troy Williams added a comment - Sorry, Does not look like any db/messages.php file.
            Hide
            Petr Skoda added a comment -

            It is related to both messaging (sending of messages in moodle via message_send()) and enrol/imsenterprise plugin.

            Show
            Petr Skoda added a comment - It is related to both messaging (sending of messages in moodle via message_send()) and enrol/imsenterprise plugin.
            Hide
            JD added a comment -

            We had the same problem with a slightly different error message in version 2.3.1.

            In our case, we change line #236 in \enrol\imsenterprise\lib.php :

            before

            236: $eventdata->component         = 'imsenterprise';

            to

            after

            236: $eventdata->component         = 'enrol_imsenterprise';

            This way, it match the value for the ims component in the table 'mdl_message_providers'.

            Show
            JD added a comment - We had the same problem with a slightly different error message in version 2.3.1. In our case, we change line #236 in \enrol\imsenterprise\lib.php : before 236: $eventdata->component = 'imsenterprise'; to after 236: $eventdata->component = 'enrol_imsenterprise'; This way, it match the value for the ims component in the table 'mdl_message_providers'.
            Hide
            Troy Williams added a comment -

            +1 for that working Jean-Daniel

            Show
            Troy Williams added a comment - +1 for that working Jean-Daniel
            Hide
            Dan Poltawski added a comment -

            Just discovered this myself.

            Show
            Dan Poltawski added a comment - Just discovered this myself.
            Hide
            Frédéric Massart added a comment -

            Looks good Dan, pushing for integration.

            Show
            Frédéric Massart added a comment - Looks good Dan, pushing for integration.
            Hide
            Eloy Lafuente (stronk7) added a comment -

            Integrated (24, 25 & master), thanks!

            Show
            Eloy Lafuente (stronk7) added a comment - Integrated (24, 25 & master), thanks!
            Hide
            Damyon Wiese added a comment -

            Tested on 24, 25 and master. All passed.

            Thanks!

            Show
            Damyon Wiese added a comment - Tested on 24, 25 and master. All passed. Thanks!
            Hide
            Dan Poltawski added a comment -

            You did it!

            Thanks for your contribution, this change has been merged upstream and is now available on your local git mirror and on download sites shortly.

            Show
            Dan Poltawski added a comment - You did it! Thanks for your contribution, this change has been merged upstream and is now available on your local git mirror and on download sites shortly.

              People

              • Votes:
                2 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Agile