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

Shibboleth auth: db write error with custom field

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide

      Setup test:

      Enable the shibboleth authentication plugin and set the "auth_shibboleth | user_attribute" admin setting to "REQUEST_TIME". This enables testing the shibboleth authentication plugin using a unique username each login.

       

      Test:

      1. Create a custom profile field of type "Dropdown Menu"
        1. name: TEST 
        2. required: no
        3. locked: yes
        4. unique: no
        5. menuoptions: (no blank lines)

                         test
                         value

      1. In Shibbolelth auth paramters:
        1. leave field_updatelocal_profile_field_TEST empty
      2. Connect with a new user, which not already exists in moodle
        1. if you set the field TEST to be updated at creation, the error only appears at creation
        2. if you set the field TEST to be updated at each connections, the error appears at each connections...
      Show
      Setup test: Enable the shibboleth authentication plugin and set the "auth_shibboleth | user_attribute" admin setting to "REQUEST_TIME". This enables testing the shibboleth authentication plugin using a unique username each login.   Test: Create a custom profile field of type "Dropdown Menu" name: TEST  required: no locked: yes unique: no menuoptions: (no blank lines)                    test                    value In Shibbolelth auth paramters: leave field_updatelocal_profile_field_TEST empty Connect with a new user, which not already exists in moodle if you set the field TEST to be updated at creation, the error only appears at creation if you set the field TEST to be updated at each connections, the error appears at each connections...
    • Workaround:
      Hide

      Adding an empty line at the end of the profile filed menu options

      Show
      Adding an empty line at the end of the profile filed menu options
    • Affected Branches:
      MOODLE_33_STABLE, MOODLE_34_STABLE, MOODLE_35_STABLE, MOODLE_36_STABLE
    • Fixed Branches:
      MOODLE_35_STABLE, MOODLE_36_STABLE
    • Pull from Repository:
    • Pull 3.5 Branch:
    • Pull Master Branch:
      MDL-60267-master

      Description

      1. Create a custom profile field "dropdownlist"
        1. name: TEST 
        2. required: no
        3. locked: yes
        4. unique: no
      2. In Shibbolelth auth paramters:
        1. leave field_updatelocal_profile_field_TEST empty
      3. Connect with a user
        1. if you set the field TEST to be updated at creation, the error only appears at creation
        2. if you set the field TEST to be updated at each connections, the error appears at each connections...

      Error: Shibboleth plugin seems to try to update the fields even if the data source field is empty.

      ERROR LOG:

      [28-Sep-2017 10:41:01 Europe/Brussels] Default exception handler: Erreur d'écriture vers la base de données Debug: Column 'data' cannot be null
      UPDATE mdl_user_info_data SET userid = ?,fieldid = ?,data = ? WHERE id=?
      [array (
      0 => '18752',
      1 => '1',
      2 => NULL,
      3 => '18945',
      )]
      Error code: dmlwriteexception

      • line 489 of /lib/dml/moodle_database.php: dml_write_exception thrown
      • line 1502 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
      • line 1534 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->update_record_raw()
      • line 155 of /user/profile/lib.php: call to mysqli_native_moodle_database->update_record()
      • line 523 of /user/profile/lib.php: call to profile_field_base->edit_save_data()
      • line 3961 of /lib/moodlelib.php: call to profile_save_data()
      • line 4330 of /lib/moodlelib.php: call to update_user_record_by_id()
      • line 54 of /auth/shibboleth/index.php: call to authenticate_user_login()

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  14/Jan/19