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

Empty ID in user/edit_form.php :: definition_after_data() - does not work with postgresql

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Minor Minor
    • None
    • 1.8.5
    • Database SQL/XMLDB
    • None
    • PostgreSQL
    • MOODLE_18_STABLE

      Yet another problem with empty ID when accessing user/edit.php under PostgreSQL. definition_after_data() expects user ID to be stored in form hidden field but the value of the field is not set.

      I can see two possible solutions, both of them to be fixed in user/edit_form.php
      1) either in definition ()
      $mform->addElement('hidden', 'id');
      should be changed to
      $mform->addElement('hidden', 'id', $USER->id); // do not forget to add global $USER

      2) or in definition_after_data()
      if ($user = get_record('user', 'id', $userid)) {
      should be changed to
      if (is_numeric($userid) && $user = get_record('user', 'id', $userid)) {

      However, I was not able to find out why it works in 1.9 - hidden ID gets filled in $mform somewhen between definition() and definition_after_data(). That leads me to feeling that the origin of this problem is hidden somewhere else...

            mudrd8mz David Mudrák (@mudrd8mz)
            mudrd8mz David Mudrák (@mudrd8mz)
            Petr Skoda Petr Skoda
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.