2023-03-21 18:01:30 |
Laurent |
description |
To reproduce the issue, setup a new Mahara install (22.10.0 STABLE).
* Create 2 users Student and Teacher
* Create an institution
* Add the two users in the institution
* Add a new group (Group 1) - With the 3 roles (Tutor, Member, Admin)
* Add Student as Member of Group 1 and Teacher as Tutor in Group 1
* As Student create a page and submit it for review in Group 1
* As Teacher release the Page
From this point an error will be displayed and the page will never be released and will be marked as "Pending release after archiving."
The Error displayed is:
Failed to get a recordset: mysqli error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? LIMIT 1' at line 1] in EXECUTE("SELECT * FROM "lti_assessment" WHERE "group" = ? LIMIT 1")Command was: SELECT * FROM "lti_assessment" WHERE "group" = ?
...
When examining the issue with a debugger it seems that group_external_group($group) is called with an integer instead of a string, so it means that record_exists('lti_assessment', 'group', $group->id) is called with the wrong value (as $group->id does not exist). |
To reproduce the issue, setup a new Mahara install (22.10.0 STABLE, Mysql).
* Create 2 users Student and Teacher
* Create an institution
* Add the two users in the institution
* Add a new group (Group 1) - With the 3 roles (Tutor, Member, Admin)
* Add Student as Member of Group 1 and Teacher as Tutor in Group 1
* As Student create a page and submit it for review in Group 1
* As Teacher release the Page
From this point an error will be displayed and the page will never be released and will be marked as "Pending release after archiving."
The Error displayed is:
Failed to get a recordset: mysqli error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? LIMIT 1' at line 1] in EXECUTE("SELECT * FROM "lti_assessment" WHERE "group" = ? LIMIT 1")Command was: SELECT * FROM "lti_assessment" WHERE "group" = ?
...
When examining the issue with a debugger it seems that group_external_group($group) is called with an integer instead of a string, so it means that record_exists('lti_assessment', 'group', $group->id) is called with the wrong value (as $group->id does not exist). |
|